2012-05-27 3 views
1

Я успешно добавил словарь ресурсов (содержащий мою тему/коллекцию ресурсов шаблонов стилей) к моему Window.Resources. Это соответствует каждому из моих окон. Однако, когда я добавляю ту же строку:Как стилизовать мое приложение в WPF с помощью app.xaml

<ResourceDictionary Source="BureauBlack.xaml" x:Key="BureauBlackKey"/> 

В мой App.xaml ничего не меняется.

Edit # 1:

<Application x:Class="EventPlanner.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:vm="clr-namespace:EventPlanner.ViewModels" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <vm:ViewModelLocator x:Key="ViewModelLocatorKey"/> 
      <ResourceDictionary Source="BureauBlack.xaml" x:Key="BureauBlackKey"/> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 
+0

Я не думаю, что я понимаю вашу проблему, но вы знаете, насколько ресурс поиск работает, не так ли? Допустим, у вас есть ресурс в app.xaml и в вашем окне, оба названы одинаковыми. Если вы теперь ищите его в окне, выполняется первое вхождение, которое является ресурсом в окне. [См.] (Http://msdn.microsoft.com/en-us/library/ms750613.aspx#staticdynamic). Btw. Ресурсным словарям не нужен x: Key, это не больно, но и ничего не делает. – dowhilefor

+0

Если я не добавляю ключ, он дает мне ошибку, говоря, что все в словаре ресурсов требует значения ключа. Я отправлю свой App.xaml (должен был это сделать). –

+2

Вы не добавляете такие ResourceDictionaries. Если вы хотите добавить xaml для поиска ресурсов, аналогично include, добавьте его в [MergedDictionaries] (http://msdn.microsoft.com/en-us/library/aa350178.aspx) – dowhilefor

ответ

4

Вам нужно добавить словарь тема ресурса в MergedDictionaries коллекции:

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="BureauBlack.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 

     <!-- other resources go here --> 

     <vm:ViewModelLocator x:Key="ViewModelLocatorKey"/> 

    </ResourceDictionary> 
</Application.Resources> 
+0

Это сработало, спасибо большое! –