Freigeben über


Verwenden von Systemressourcen (WPF .NET)

In diesem Beispiel wird die Verwendung systemdefinierter Ressourcen veranschaulicht. Systemressourcen werden von WPF bereitgestellt und ermöglichen den Zugriff auf Betriebssystemressourcen, z. B. Schriftarten, Farben und Symbole. Systemressourcen machen mehrere systemdefinierte Werte als Ressourcen und Eigenschaften verfügbar, um visuelle Elemente zu erstellen, die mit Windows konsistent sind.

Schriftarten

Verwenden Sie die SystemFonts Klasse, um auf die schriftarten zu verweisen, die vom Betriebssystem verwendet werden. Diese Klasse enthält Systemschriftartwerte als statische Eigenschaften und Eigenschaften, die auf Ressourcenschlüssel verweisen, die zum dynamischen Zugriff auf diese Werte zur Laufzeit verwendet werden können. Beispielsweise stellt CaptionFontFamily einen SystemFonts-Wert dar, und CaptionFontFamilyKey ist ein entsprechender Ressourcenschlüssel.

Das folgende Beispiel zeigt, wie Sie auf die Eigenschaften von SystemFonts als statische Werte zugreifen oder einen Textblock anpassen können:

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

Um die Werte von SystemFonts im Code zu verwenden, müssen Sie weder einen statischen Wert noch einen dynamischen Ressourcenverweis verwenden. Verwenden Sie stattdessen die nichtschlüsseligen Eigenschaften der SystemFonts-Klasse. Obwohl die nicht wichtigen Eigenschaften scheinbar als statische Eigenschaften definiert sind, wird das Laufzeitverhalten von WPF, das vom System gehostet wird, die Eigenschaften in Echtzeit neu ausgewertet und die vom Benutzer gesteuerten Änderungen an Systemwerten ordnungsgemäß berücksichtigen. Das folgende Beispiel zeigt, wie Die Schriftarteinstellungen einer Schaltfläche angegeben werden:

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)

Dynamische Schriftarten in XAML

Systemschriftartenmetriken können entweder als statische oder dynamische Ressourcen verwendet werden. Verwenden Sie eine dynamische Ressource, wenn die Schriftartmetrik während der Ausführung der Anwendung automatisch aktualisiert werden soll. verwenden Sie andernfalls eine statische Ressource.

Anmerkung

Dynamische Ressourcen haben das Schlüsselwort Key an den Eigenschaftennamen angefügt.

Das folgende Beispiel zeigt, wie Sie auf dynamische Systemschriftarten zugreifen und diese verwenden, um einen Textblock zu formatieren oder anzupassen:

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

Parameter

Verwenden Sie die SystemParameters Klasse, um auf Eigenschaften auf Systemebene zu verweisen, z. B. die Größe der primären Anzeige. Diese Klasse enthält sowohl Systemparameterwerteigenschaften als auch Ressourcenschlüssel, die an die Werte gebunden sind. Beispielsweise ist FullPrimaryScreenHeight ein SystemParameters-Eigenschaftswert, und FullPrimaryScreenHeightKey ist der entsprechende Ressourcenschlüssel.

Das folgende Beispiel zeigt, wie Sie auf die statischen Werte von SystemParameters zugreifen und diese verwenden, um eine Schaltfläche zu formatieren oder anzupassen. In diesem Markupbeispiel wird eine Schaltfläche durch das Anwenden von SystemParameters Werten auf die Schaltfläche skaliert.

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

Um die Werte von SystemParameters im Code zu verwenden, müssen Sie weder statische Verweise noch dynamische Ressourcenverweise verwenden. Verwenden Sie stattdessen die Werte der SystemParameters Klasse. Obwohl die nicht wichtigen Eigenschaften scheinbar als statische Eigenschaften definiert sind, wird das Laufzeitverhalten von WPF, das vom System gehostet wird, die Eigenschaften in Echtzeit neu ausgewertet und die vom Benutzer gesteuerten Änderungen an Systemwerten ordnungsgemäß berücksichtigen. Das folgende Beispiel zeigt, wie die Breite und Höhe einer Schaltfläche mithilfe von SystemParameters Werten festgelegt werden:

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)

Dynamische Parameter in XAML

Systemparametermetriken können als statische oder dynamische Ressourcen verwendet werden. Verwenden Sie eine dynamische Ressource, wenn die Parametermetrik während der Ausführung der Anwendung automatisch aktualisiert werden soll. verwenden Sie andernfalls eine statische Ressource.

Anmerkung

Dynamische Ressourcen haben das Schlüsselwort Key an den Eigenschaftennamen angefügt.

Das folgende Beispiel zeigt, wie Sie auf dynamische Systemparameterressourcen zugreifen und diese verwenden, um eine Schaltfläche zu formatieren oder anzupassen. In diesem XAML-Beispiel wird eine Schaltfläche dimensioniert, indem ein SystemParameters-Wert für die Breite und Höhe der Schaltfläche zugewiesen wird.

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

Siehe auch