Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

WPF: Создание контролов, стили которых зависят от системной темы

Напечатать страницу
16.07.2006 15:20 | QiSoft

Внешний вид – важная составляющая при создании интерфейса. Причем, неплохо бы внести разнообразие в него. И вот тут приходится очень кстати замеччательная возможность приложений – использование тем. Сделать свои контролы зависимыми от системной темы очень просто. Все что вам нужно, это папка themes, в которую вы будуте помещать файлы содержащие стили. Имя файла темы должно выглядеть так:

themes\<Theme Name>.<Theme Color>.xaml


Например, для стандартных тем Windows, создайте файлы:

themes\luna.normalcolor.xaml
themes\luna. homestead.xaml
themes\luna.metallic.xaml
themes\royale.normalcolor.xaml
themes\aero.normalcolor.xaml
themes\Classic.xaml


И поместите в них необходимые стили.

ВНИМАНИЕ: У контрола будет именно тот стиль, который вы опишите, а не системный.
Также необходимо добавить файл с именем generic.xaml, который будет содержать стиль, применяемый при неописаной теме (т.е. если файла с именем текущей темы Windows в папке themes нет).

Далее необходимо добавить ссылку в файл AssemblyInfo (находится в папке "Properties" – если C#, в папке "My Project" – если VB). Ссылку необходимо добавить ниже последней строки начинающейся на [assembly... или <Assembly... (зависит от языка):
Для C#:

assembly:ThemeInfo(ResourceDictionaryLocation.SourceAssembly,                     ResourceDictionaryLocation.SourceAssembly)


Для VB:

<Assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly,                     ResourceDictionaryLocation.SourceAssembly)>


Первый параметр сообщает движку, где находятся темы – в данном случае это текущая сборка. Второй параметр указывает место расположения файла generic.xaml.

А теперь, откомпилируйте и запустите ваш проект. Смените используемую Windows тему и убедитесь, что в вашем приложении тоже сменились стили!

И в заключение предоставляется пример использования этой возможности на C#.

Источник: http://blogs.msdn.com/
Перевод: QiSoft

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.029 секунд (Общее время SQL: 0.013 секунд - SQL запросов: 51 - Среднее время SQL: 0.00026 секунд))
Top.Mail.Ru