Utilisation des ressources système (WPF .NET)

Cet exemple montre comment utiliser des ressources définies par le système. Les ressources système sont fournies par WPF et autorisent l’accès aux ressources du système d’exploitation, telles que les polices, les couleurs et les icônes. Les ressources système exposent plusieurs valeurs définies par le système en tant que ressources et propriétés pour vous aider à créer des visuels cohérents avec Windows.

Important

La documentation du Guide du bureau pour .NET 7 et .NET 6 est en cours de construction.

Polices

Utilisez la SystemFonts classe pour référencer les polices utilisées par le système d’exploitation. Cette classe contient des valeurs de police système en tant que propriétés statiques et des propriétés qui référencent des clés de ressource qui peuvent être utilisées pour accéder dynamiquement à ces valeurs au moment de l’exécution. Par exemple, CaptionFontFamily est une SystemFonts valeur et CaptionFontFamilyKey est une clé de ressource correspondante.

L’exemple suivant montre comment accéder aux propriétés des valeurs statiques et les utiliser pour styler ou personnaliser un bloc de SystemFonts texte :

<TextBlock FontSize="{x:Static SystemFonts.SmallCaptionFontSize}"
           FontWeight="{x:Static SystemFonts.SmallCaptionFontWeight}"
           FontFamily="{x:Static SystemFonts.SmallCaptionFontFamily}"
           Text="Small Caption Font">
</TextBlock>

Pour utiliser les valeurs du SystemFonts code, vous n’avez pas besoin d’utiliser une valeur statique ou une référence de ressource dynamique. Utilisez plutôt les propriétés non clés de la SystemFonts classe. Bien que les propriétés non clés soient apparemment définies en tant que propriétés statiques, le comportement d’exécution de WPF tel qu’hébergé par le système réévalue les propriétés en temps réel et compte correctement les modifications pilotées par l’utilisateur aux valeurs système. L’exemple suivant montre comment spécifier les paramètres de police d’un bouton :

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)

Polices dynamiques en XAML

Les métriques de police système peuvent être utilisées en tant que ressources statiques ou dynamiques. Utilisez une ressource dynamique si vous souhaitez que la métrique de police soit mise à jour automatiquement pendant l’exécution de l’application ; sinon, utilisez une ressource statique.

Remarque

Les ressources dynamiques ont la mot clé Key ajoutée au nom de la propriété.

L’exemple suivant montre comment accéder aux ressources dynamiques de police système et les utiliser pour styler ou personnaliser un bloc de texte :

<TextBlock FontSize="{DynamicResource {x:Static SystemFonts.SmallCaptionFontSize}}"
           FontWeight="{DynamicResource {x:Static SystemFonts.SmallCaptionFontWeight}}"
           FontFamily="{DynamicResource {x:Static SystemFonts.SmallCaptionFontFamily}}"
           Text="Small Caption Font">
</TextBlock>

Paramètres

Utilisez la SystemParameters classe pour référencer les propriétés au niveau du système, telles que la taille de l’affichage principal. Cette classe contient à la fois les propriétés de valeur de paramètre système et les clés de ressource qui sont liées aux valeurs. Par exemple, FullPrimaryScreenHeight est une SystemParameters valeur de propriété et FullPrimaryScreenHeightKey est la clé de ressource correspondante.

L’exemple suivant montre comment accéder aux valeurs statiques de SystemParameters style ou personnaliser un bouton. Cet exemple de balisage dimensionne un bouton en appliquant SystemParameters des valeurs à un bouton :

<Button FontSize="8" 
        Height="{x:Static SystemParameters.CaptionHeight}"
        Width="{x:Static SystemParameters.IconGridWidth}"
        Content="System Parameters">
</Button>

Pour utiliser les valeurs du SystemParameters code, vous n’avez pas besoin d’utiliser des références statiques ou des références de ressources dynamiques. Utilisez plutôt les valeurs de la SystemParameters classe. Bien que les propriétés non clés soient apparemment définies en tant que propriétés statiques, le comportement d’exécution de WPF tel qu’hébergé par le système réévalue les propriétés en temps réel et compte correctement les modifications pilotées par l’utilisateur aux valeurs système. L’exemple suivant montre comment définir la largeur et la hauteur d’un bouton à l’aide SystemParameters de valeurs :

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)

Paramètres dynamiques en XAML

Les métriques de paramètres système peuvent être utilisées en tant que ressources statiques ou dynamiques. Utilisez une ressource dynamique si vous souhaitez que la métrique de paramètre soit mise à jour automatiquement pendant l’exécution de l’application ; sinon, utilisez une ressource statique.

Remarque

Les ressources dynamiques ont la mot clé Key ajoutée au nom de la propriété.

L’exemple suivant montre comment accéder à des ressources dynamiques de paramètres système et comment les utiliser pour personnaliser un bouton ou lui appliquer un style. Cet exemple XAML dimensionne un bouton en affectant des SystemParameters valeurs à la largeur et à la hauteur du bouton.

<Button FontSize="8" 
        Height="{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"
        Width="{DynamicResource {x:Static SystemParameters.IconGridWidthKey}}"
        Content="System Parameters">
</Button>

Voir aussi