【问题标题】:WPF window and controls styleWPF 窗口和控件样式
【发布时间】:2017-04-06 14:38:40
【问题描述】:

我已经在我的WPF 应用程序中定义了我想要应用的所有样式。问题是,如果我打开另一个窗口,它的样式与主窗口不同,因为它是在另一个项目中定义的。

如何应用主应用程序的样式?

谢谢!

编辑

这是我的 App.xaml 的一部分

<Application.Resources>        
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
             <ResourceDictionary Source="Assets/Styles/Themes/Dark.xaml" />
            <ResourceDictionary Source="Assets/Styles/Border.xaml" />
            <ResourceDictionary Source="Assets/Styles/BaseBlock.xaml" />
            <ResourceDictionary Source="Assets/Styles/Buttons.xaml" />
            .....

我需要将 Main Project 中定义的样式应用到 Project1 中定义的样式,以保持一致性。

【问题讨论】:

  • 项目是否在同一个解决方案中?
  • 是的,他们是。 MainProject 的引用中有 Project1。

标签: c# wpf styles


【解决方案1】:

将您的样式放入 App.xaml 中应用程序资源的 ResourceDictionary。因此,您可以通过 {StaticResource keyOfYourStyle} 在任何地方使用您的资源。如果您愿意,将您的样式应用于该类型的所有控件,然后使用默认样式:

<Style TargetType="Border" BasedOn="{StaticResource keyOfYourStyle}>



 <Application.Resources>
    <ResourceDictionary>
    <ThisResourceWillBeAccessedEveryWhere x:Key="ResName"/>
<ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/YourAssembley;component/Resources/ButtonStyles.xaml" />
            </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
    </Application.Resources>

【讨论】:

  • 你能解释一下我应该在 App.xaml 中添加什么吗?我编辑了我的帖子,显示了我的 App.xaml 的开头。谢谢!
  • 是的,我已经为我在当前项目中定义的所有窗口执行了此操作。问题在于主应用程序所引用的其他项目中定义的窗口。它们有自己的风格,可以不同于主要应用程序的风格。
  • 如果您在另一个窗口中明确设置样式,那么这将覆盖默认样式。
  • 可能我没有很好地解释这个问题。我的项目中定义的所有窗口的样式都是根据 xaml 正确设置的。问题是我必须使用在其他不同项目中定义的一些 WPF 窗口。
猜你喜欢
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
相关资源
最近更新 更多