Come usare le risorse di sistema (WPF .NET)
Questo esempio illustra come usare le risorse definite dal sistema. Le risorse di sistema vengono fornite da WPF e consentono l'accesso alle risorse del sistema operativo, ad esempio tipi di carattere, colori e icone. Le risorse di sistema espongono diversi valori definiti dal sistema come risorse e proprietà che consentono di creare oggetti visivi coerenti con Windows.
Caratteri
Utilizzare la classe SystemFonts per fare riferimento ai tipi di carattere utilizzati dal sistema operativo. Questa classe contiene valori dei tipi di carattere di sistema come proprietà statiche e proprietà che fanno riferimento alle chiavi di risorsa che possono essere usate per accedere a tali valori in modo dinamico in fase di esecuzione. Ad esempio, CaptionFontFamily è un valore SystemFonts e CaptionFontFamilyKey è una chiave di risorsa corrispondente.
Nell'esempio seguente viene illustrato come accedere e usare le proprietà di SystemFonts come valori statici per applicare uno stile o personalizzare un blocco di testo:
<TextBlock FontSize="{x:Static SystemFonts.SmallCaptionFontSize}"
FontWeight="{x:Static SystemFonts.SmallCaptionFontWeight}"
FontFamily="{x:Static SystemFonts.SmallCaptionFontFamily}"
Text="Small Caption Font">
</TextBlock>
Per usare i valori di SystemFonts nel codice, non è necessario usare un valore statico o un riferimento di risorsa dinamica. Usare invece le proprietà non chiave della classe SystemFonts. Anche se le proprietà non chiave sono apparentemente definite come proprietà statiche, il comportamento di runtime di WPF ospitato dal sistema rivaluta le proprietà in tempo reale e tiene conto correttamente delle modifiche guidate dall'utente ai valori di sistema. Nell'esempio seguente viene illustrato come specificare le impostazioni del tipo di carattere di un pulsante:
var myButton = new Button()
{
Content = "SystemFonts",
Background = SystemColors.ControlDarkDarkBrush,
FontSize = SystemFonts.IconFontSize,
FontWeight = SystemFonts.MessageFontWeight,
FontFamily = SystemFonts.CaptionFontFamily
};
mainStackPanel.Children.Add(myButton);
Dim myButton = New Button() With
{
.Content = "SystemFonts",
.Background = SystemColors.ControlDarkDarkBrush,
.FontSize = SystemFonts.IconFontSize,
.FontWeight = SystemFonts.MessageFontWeight,
.FontFamily = SystemFonts.CaptionFontFamily
}
mainStackPanel.Children.Add(myButton)
Tipi di carattere dinamici in XAML
Le metriche dei tipi di carattere di sistema possono essere usate come risorse statiche o dinamiche. Usa una risorsa dinamica se vuoi che la metrica del tipo di carattere venga aggiornata automaticamente durante l'esecuzione dell'applicazione; in caso contrario, usare una risorsa statica.
Nota
Le risorse dinamiche hanno la parola chiave Key
aggiunta al nome della proprietà.
L'esempio seguente illustra come accedere e usare le risorse dinamiche del tipo di carattere di sistema per applicare uno stile o personalizzare un blocco di testo:
<TextBlock FontSize="{DynamicResource {x:Static SystemFonts.SmallCaptionFontSize}}"
FontWeight="{DynamicResource {x:Static SystemFonts.SmallCaptionFontWeight}}"
FontFamily="{DynamicResource {x:Static SystemFonts.SmallCaptionFontFamily}}"
Text="Small Caption Font">
</TextBlock>
Parametri
Usare la classe SystemParameters per fare riferimento alle proprietà a livello di sistema, ad esempio le dimensioni della visualizzazione primaria. Questa classe contiene sia le proprietà del valore del parametro di sistema che le chiavi di risorsa che si associano ai valori. Ad esempio, FullPrimaryScreenHeight è un valore della proprietà SystemParameters e FullPrimaryScreenHeightKey è la chiave di risorsa corrispondente.
Nell'esempio seguente viene illustrato come accedere e usare i valori statici di SystemParameters per applicare uno stile o personalizzare un pulsante. Questo esempio di markup ridimensiona un pulsante applicando SystemParameters valori a un pulsante:
<Button FontSize="8"
Height="{x:Static SystemParameters.CaptionHeight}"
Width="{x:Static SystemParameters.IconGridWidth}"
Content="System Parameters">
</Button>
Per usare i valori di SystemParameters nel codice, non è necessario usare riferimenti statici o riferimenti a risorse dinamiche. Usare invece i valori della classe SystemParameters. Anche se le proprietà non chiave sono apparentemente definite come proprietà statiche, il comportamento di runtime di WPF ospitato dal sistema rivaluta le proprietà in tempo reale e tiene conto correttamente delle modifiche guidate dall'utente ai valori di sistema. L'esempio seguente illustra come impostare la larghezza e l'altezza di un pulsante usando SystemParameters valori:
var myButton = new Button()
{
Content = "SystemParameters",
FontSize = 8,
Background = SystemColors.ControlDarkDarkBrush,
Height = SystemParameters.CaptionHeight,
Width = SystemParameters.CaptionWidth,
};
mainStackPanel.Children.Add(myButton);
Dim myButton = New Button() With
{
.Content = "SystemParameters",
.FontSize = 8,
.Background = SystemColors.ControlDarkDarkBrush,
.Height = SystemParameters.CaptionHeight,
.Width = SystemParameters.CaptionWidth
}
mainStackPanel.Children.Add(myButton)
Parametri dinamici in XAML
Le metriche dei parametri di sistema possono essere usate come risorse statiche o dinamiche. Usare una risorsa dinamica se si vuole che la metrica del parametro venga aggiornata automaticamente durante l'esecuzione dell'applicazione; in caso contrario, usare una risorsa statica.
Nota
Le risorse dinamiche hanno la parola chiave Key
aggiunta al nome della proprietà.
Nell'esempio seguente viene illustrato come accedere e usare le risorse dinamiche del parametro di sistema per applicare uno stile o personalizzare un pulsante. Questo esempio XAML ridimensiona un pulsante assegnando SystemParameters valori alla larghezza e all'altezza del pulsante.
<Button FontSize="8"
Height="{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"
Width="{DynamicResource {x:Static SystemParameters.IconGridWidthKey}}"
Content="System Parameters">
</Button>
Vedere anche
.NET Desktop feedback