uwp
Тематические ресурсы
Поиск…
Синтаксис
- C #: Application.Current.Resources ["yourColorKey"]
- Xaml: {ThemeResource yourColorKey}
параметры
| параметр | Цель |
|---|---|
yourColorKey | Ключ, который вы даете, чтобы вернуть объект Color . Он отличается между C # и Xaml |
замечания
UWP позволяет вам полностью контролировать преимущества Windows 10. Некоторые из этих преимуществ являются графическими, такими как цвет Accent или Dark / Light.
Чтобы подготовить приложение к совместимости с этими функциями, в UWP была реализована куча готовых цветов для изменения цвета Accent ОС, на которых работает программа, или с выбором темы для пользователя.
Это можно сделать двумя способами:
Diretly в Xaml, используя атрибут
Color = {ThemeResource x}(или любой другой атрибут, который принимает значениеBrushкак значение, например BorderBrush, Background и т. Д.),В C # Code Behind, путем поиска цвета в каталоге ресурсов текущего приложения. Это дает объект
Color, поэтому, если вы хотите поместить его в свойствоColorобъекта, на который вы ссылаетесь, из вашего Xaml, вам нужно сделать новую кисть следующим образом:
new SolidColorBrush(Application.Current.Resources["yourColorKey"])
Для справки цветных клавиш в c #, пожалуйста, обратитесь к:
https://msdn.microsoft.com/windows/uwp/controls-and-patterns/xaml-theme-resources
Доступ к ресурсам темы в Xaml
Фрагмент из MyExampleFile.xaml
<TextBlock Foreground="{ThemeResource SystemControlBackgroundAccentBrush}"
Text="This is a colored textbox that use the Accent color of your Windows 10"/>
<TextBlock Foreground="{ThemeResource SystemControlBackgroundBaseHighBrush}"
Text="This is a colored textbox that use a color that is readable in both Light and Dark theme"/>
Доступ к ресурсам темы в C #
Фрагмент из MyExampleFile.xaml
<TextBlock x:Name="MyTextBlock"
Text="This is a TextBlock colored from the code behind"/>
Фрагмент из MyExampleFile.xaml.cs
// We use the application's Resource dictionary to get the current Accent of your Windows 10
MyTextBlock.Color = new SolidColorBrush(Application.Current.Resources["SystemAccentColor"]);