Как загружаются темы WPF? - PullRequest
1 голос
/ 06 мая 2011

Элементы управления WPF получают стили, цвета и кисти по умолчанию из темы (обычно в PresentationFramework.Aero.dll).

Какая часть загружает эту сборку? А где хранится словарь ресурсов?

У меня есть свои собственные пользовательские темы WPF, и я загружаю их в Application.Current.Resources.MergedDictionary. Однако это не работает, если тематический элемент управления WPF размещен в Windows Forms, поскольку Application.Current имеет значение null.

Есть ли способ сделать что-то похожее на то, что делает WPF? Если так, что это?

Ответы [ 3 ]

1 голос
/ 06 мая 2011

Вы не можете использовать темы WPF в Winforms, потому что это две разные технологии.В Winforms нет подобного механизма тем.Вы можете использовать сторонние элементы управления, которые поддерживают темы в Winforms.Наиболее заметными из них являются инструменты от Infragistics и Telerik.

Итог: нет, нет.

0 голосов
/ 06 мая 2011

(отвечая на мой вопрос) Чтобы загрузить словарь ресурсов в качестве темы, нужно добавить его в список объединенных словарей словаря ресурсов generic.xaml.

Нет другого способа загрузить словарь ресурсов как тему.

Это прекрасно работает при использовании из WinForms

0 голосов
/ 06 мая 2011

Можете ли вы просто добавить тему в элемент управления вместо приложения?

control.Resources.MergedDictionaries.Clear();
control.Resources.MergedDictionaries.Add(resourceDictionary);
...