uwp
Risorse a tema
Ricerca…
Sintassi
- C #: Application.Current.Resources ["yourColorKey"]
- Xaml: {ThemeResource yourColorKey}
Parametri
Parametro | Scopo |
---|---|
yourColorKey | Una chiave che dai per recuperare un oggetto Color . Differisce tra C # e Xaml |
Osservazioni
UWP ti consente di avere il pieno controllo dei vantaggi di Windows 10. Alcuni di questi vantaggi sono grafici, come il colore Accent oi temi Dark / Light.
Per preparare la tua app in modo che sia compatibile con queste funzionalità, sono stati implementati in UWP alcuni colori prematrimoniali da modificare con il colore Accent del sistema operativo su cui è in esecuzione il programma o con la scelta del tema dell'utente.
Ci sono due modi per farlo :
Direttamente in Xaml, usando l'attributo
Color = {ThemeResource x}
(o qualsiasi altro attributo che prende unBrush
come valore, come BorderBrush, Background, ecc.)In C # Code Behind, cercando il colore nella directory delle risorse dell'app corrente. Questo dà un oggetto
Color
, quindi se vuoi metterlo nella proprietàColor
di un oggetto a cui fai riferimento da Xaml, devi fare un nuovo pennello come questo:
new SolidColorBrush(Application.Current.Resources["yourColorKey"])
Per un riferimento dei tasti colorati in c #, consultare:
https://msdn.microsoft.com/windows/uwp/controls-and-patterns/xaml-theme-resources
Accesso alle risorse tematiche in Xaml
Snippet da 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"/>
Accesso alle risorse tematiche in C #
Snippet da MyExampleFile.xaml
<TextBlock x:Name="MyTextBlock" Text="This is a TextBlock colored from the code behind"/>
Snippet da 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"]);