2013-04-12 14 views
5

Używam MahApps.Metro, wersja 0.11.0.9-ALPHA dla .NET 4.5. i chcą wiedzieć, jak najlepiej odwoływać się do słowników zasobów.WPF MahApps.Metro - Gdzie umieścić ResourceDictionaries?

Powiedziano mi, że nie powinienem traktować ich jako połączonych słowników w App.xaml. Jeśli tak nie jest, czy muszę dodać je jako Window.Resources dla każdego okna?

robiłem to:

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Red.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

</Application.Resources> 

Problemem jest to, że niektóre elementy sterujące działają funky, na przykład minimalizacji, maksymalizacji i zamknij przyciski w oknie pojawiają się jako czarne bloki bez tekstu. Kiedy odwołuję się do tych słowników zasobów jako Window.Resources, wszystko działa dobrze ...

Odpowiedz

7

Po prostu używam udostępnionego słownika zasobów, do którego odwołuje się każde okno.

GeneralResources.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" /> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 
     <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedTabControl.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 

    <other shared resources... /> 
</ResourceDictionary> 

Każde okno:

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="GeneralResources.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 

     <other window resources... /> 
    </ResourceDictionary> 
</Window.Resources> 
+0

Dzięki bogatym, dobre połączenia. (Chciałbym zastosować styl globalnie, taki jak strona wzorcowa, ale to już inny temat!) –

Powiązane problemy