Привет всем в SO,WPF ResourceDictionary and Styling
У меня проблема в WPF. У меня есть 2 (или больше в ближайшем будущем) ResourceDictionaries, один из них содержит все шаблоны управления и еще один, который содержит значки и SolidColorBrushes. Поскольку первый ResourceDictionary содержит 2 стиля для каждого элемента управления, я хочу сделать другой Словарь, содержащий цвета и значки, чтобы использовать их в диалогах, что позволяет удалить лишние стили. Я хочу всегда использовать базовый словарь и желаемый цветной словарь, но вот в чем проблема:
Шаблоны не могут получить доступ к цветам в другом словаре. Я попытался следующие методы:
Метод 1: Реферирование как словари в окне
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="BaseUIStyle.xaml"/>
<ResourceDictionary Source="UIStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Метод 2: Реферирование словарь цвета в окне и создания ссылки на словарь шаблона в словаре цвета. Изначально установка была такой же, но наоборот (окно -> база -> цвет)
//Window XAML
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="UIStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
//Color XAML
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="BaseUIStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Позорный .NET 4 Bug, который многие люди столкнулись во время укладки их окна не IMO здесь, потому что приложение имеет .NET 4.5 в качестве целевой среды, и даже второй метод не будет очень глубоким (ошибка произошла, если я понял это правильно при поиске по 3 уровням или глубже).
Спасибо за любую помощь
Я не могу найти App.xaml, возможно, из-за способа построения проекта. UIStyles.xaml содержит цвет. – AlphaNERD
Это приложение WPF? App.xaml является записью по умолчанию в приложении и обычно вызывает MainWindow. Довольно редко, что у вас не будет App.xaml; возможно, файл переименован? Попробуйте найти «StartupUri» и посмотрите, сможете ли вы найти его таким образом. –
Нет результата на самом деле ... – AlphaNERD