Поиск…


Синтаксис

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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow