2017-04-06 58 views
-1

我在我的WPF应用程序中定义了我想应用的所有样式。问题是,如果我打开另一个窗口,它不具有相同的主窗口样式,因为它是在另一个项目中定义的。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" /> 
      ..... 

我需要的是应用在主项目定义为在PROJECT1中定义的样式,以便有均匀性。

enter image description here

+0

项目是否在同一个解决方案中? – Rekshino

+0

是的,他们是。 MainProject在其引用中有Project1。 –

回答

0

把你的风格,以你的应用程序资源在App.xaml中的资源字典。所以你可以通过{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> 
+0

你能解释一下我应该放在App.xaml中吗?我编辑了我的帖子,显示了我的App.xaml的开始。谢谢! –

+0

是的,我已经为我在当前项目中定义的所有窗口执行此操作。 问题在于主应用程序引用的其他项目中定义的窗口。它们的风格可以与主要应用程序的不同。 –

+0

如果您在另一个窗口中显式设置样式,那么这将覆盖默认样式。 – Rekshino