2017-04-06 60 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