2014-11-30 4 views
3

У меня есть набор значков вектора Xaml внутри разделенных .xaml. Я загружаю их в мой window используя эту директиву:Объединенные словари в App.xaml

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/ScreenToGif;component/Themes/IconSet.xaml"></ResourceDictionary> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 

У меня есть много окон, поэтому я хотел бы просто поставить этот код внутри App.xaml.

Я пытаюсь это:

<Application.Resources> <!-- Error, The property "Resources" can only be set once. --> 
    <ResourceDictionary x:Key="IconSet"> <!--Not sure why this?--> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/Mine;component/Themes/Theme.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

<!--Here goes the rest of the file, with Style and DropShadowEffect... --> 
</Application.Resources> 

Так вот проблема:

Все примеры не используют атрибут x:Key, но он дает мне ошибку о том, что мне нужно. Когда я делаю это, он говорит, что я не могу иметь несколько свойств Resource ...

ответ

14

Пожалуйста, смотрите закомментированного текста

<Application.Resources>  
    <ResourceDictionary>   
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/Mine;component/Themes/Theme.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 

     <!--You have to add other style here only--> 

    </ResourceDictionary> 

<!--Not Here--> 

</Application.Resources> 

+1

Спасибо, просто еще одна вещь, вы должны удалить 'x: Key'. –

+0

Добро пожаловать! –

+0

Теперь у меня возникают некоторые проблемы, например, если я устанавливаю вектор как дочерний элемент «ViewBox», я не могу снова установить другой «ViewBox». Я должен установить 'child = null' для использования в другом месте. Если я просто объединить словари для каждого окна, этого не произойдет. –