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"]);