Szukaj…


Składnia

  • C #: Application.Current.Resources ["yourColorKey"]
  • Xaml: {ThemeResource yourColorKey}

Parametry

Parametr Cel, powód
yourColorKey Klucz, który dajesz, aby odzyskać obiekt Color . Różni się między C # i Xaml

Uwagi

UWP pozwala przejąć pełną kontrolę nad zaletami systemu Windows 10. Niektóre z tych zalet są graficzne, takie jak kolory akcentu lub motywy ciemne / jasne.

Aby przygotować aplikację do zgodności z tymi funkcjami, w UWP zaimplementowano kilka gotowych kolorów, które zmieniają się wraz z kolorem Accent systemu operacyjnego, na którym działa program, lub z wyborem motywu użytkownika.

Można to zrobić na dwa sposoby:

  • Bezpośrednio w Xaml, za pomocą atrybutu Color = {ThemeResource x} (lub dowolnego atrybutu, który przyjmuje wartość Brush jako wartości, np. BorderBrush, Background itp.)

  • W C # Code Behind, szukając koloru w katalogu zasobów bieżącej aplikacji. Daje to obiekt Color , więc jeśli chcesz umieścić go we właściwości Color obiektu, do którego odwołujesz się z Xaml, musisz utworzyć nowy pędzel w następujący sposób:

new SolidColorBrush(Application.Current.Resources["yourColorKey"])

Odniesienie do kolorowych klawiszy w c #, proszę skonsultować:

https://msdn.microsoft.com/windows/uwp/controls-and-patterns/xaml-theme-resources

Dostęp do zasobów motywu w Xaml

Fragment z 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"/>

Dostęp do zasobów motywu w C #

Fragment z MyExampleFile.xaml

<TextBlock x:Name="MyTextBlock"
         Text="This is a TextBlock colored from the code behind"/>

Snippet z 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow