WPF Themeing из окон фона динамически - PullRequest
1 голос
/ 11 июля 2009

Хорошо, я работаю над приложением, которое позволит вам переключать темы во время выполнения. Пока все хорошо со всеми элементами управления, а что нет. Однако мой объект Window не будет применять ни один из базовых элементов. Вот пример xaml из одного из моих словарей ресурсов.

<SolidColorBrush x:Key="GrayBrush" Color="Gray" />
<SolidColorBrush x:Key="OrangeBrush" Color="Orange" />

<!-- Window Styles -->
<Style TargetType="{x:Type Window}">
    <Setter Property="Background" Value="{DynamicResource GrayBrush}" />
</Style>

У меня есть основная тема, в которой также есть приведенный выше фрагмент в моем списке ресурсов app.xaml. Теперь при запуске приложения фон не применяется ни когда я меняю словари ресурсов во время выполнения. Я полагаю, что я либо что-то упустил, либо это просто не работает.

Я использую .net 3.5, и я просто использую стандартный объект окна из фреймворка, поэтому я не наследую от любого другого базового элемента управления. Я пытаюсь не указывать стиль или другой атрибут в объекте окна, поскольку я также позволяю вам переключаться на включенные темы, такие как Aero, Luna, Classic и т. Д.

Я просто не могу на всю жизнь заставить окно использовать стиль.

Единственное, что работает, но не изменяется при переключении, это если я устанавливаю атрибут Style или Background, что я не хочу делать.

Кроме того, когда я меняю темы, вот как это делается:

Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(dictionary);

Словарь - это словарь ресурсов, загружаемый на основе темы, выбранной из материалов .net или моей собственной. Похоже, все это работает нормально, просто не получается заставить окно работать.

Любая помощь будет принята с благодарностью.

Спасибо.

Любые мысли.

ОБНОВЛЕНИЕ: я действительно хочу, чтобы объект Window мог измениться без необходимости изменять или устанавливать какие-либо дополнительные свойства в окне. Это своего рода побеждает цель, если мне нужно добавить тег стиля или что-то еще не ко всем объектам окна в моем приложении.

1 Ответ

0 голосов
/ 12 июля 2009

Посмотрите здесь ...

http://www.codeplex.com/wpfthemes

Если вы скачаете исходный код, то обнаружите, что в нем реализованы динамические темы, также все темы можно использовать бесплатно, и есть некоторые действительно хорошие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...