Verwenden von Systemressourcen (WPF .NET)
In diesem Beispiel wird veranschaulicht, wie systemdefinierte Ressourcen verwendet werden. Systemressourcen werden von WPF bereitgestellt und ermöglichen den Zugriff auf Betriebssystemressourcen wie Schriftarten, Farben und Symbole. Systemressourcen machen mehrere systemdefinierte Werte als Ressourcen und Eigenschaften verfügbar, damit Sie Visuals erstellen können, die mit den Windows.
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 verwendet werden können, um zur Laufzeit dynamisch auf diese Werte zu zugreifen. Beispielsweise: CaptionFontFamily ist ein SystemFonts Wert und CaptionFontFamilyKey ein entsprechender Ressourcenschlüssel.
Das folgende Beispiel zeigt, wie Sie auf die Eigenschaften von SystemFonts als statische Werte zugreifen und sie verwenden, um einen Textblock zu gestalten oder anzupassen:
<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 in Code zu verwenden, müssen keinen dynamischen Wert oder dynamischen Ressourcenverweis verwenden. Verwenden Sie stattdessen die Nicht-Schlüssel-Eigenschaften der SystemFonts-Klasse. Obwohl die Nichtschlüsseleigenschaften scheinbar als statische Eigenschaften definiert sind, wertet das Vom System gehostete Laufzeitverhalten von WPF die Eigenschaften in Echtzeit neu aus und berücksichtigt benutzergesteuerte Änderungen an Systemwerten ordnungsgemäß. Im folgenden Beispiel wird veranschaulicht, wie die Schriftarteinstellung einer Schaltfläche festgelegt wird.
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
Systemschriftarteigenschaften können als statische oder dynamische Ressourcen verwendet werden. Verwenden Sie eine dynamische Ressource, wenn sich die Schriftartmetrik während der Ausführung der Anwendung aktualisieren soll; verwenden Sie andernfalls eine statische Ressource.
Hinweis
Dynamische Ressourcen haben das Schlüsselwort Key
an den Eigenschaftennamen angefügt.
Das folgende Beispiel zeigt, wie Sie auf dynamische Ressourcen für Systemschriftart 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: FullPrimaryScreenHeight ist ein SystemParameters Eigenschaftswert und FullPrimaryScreenHeightKey ist der entsprechende Ressourcenschlüssel.
Das folgende Beispiel zeigt, wie auf statische Werte von SystemParameters zugegriffen wird und wie diese verwendet werden, um eine Schaltfläche zu formatieren und anzupassen. In diesem Markupbeispiel wird eine Schaltfläche vergrößert, indem SystemParameters-Werte auf eine Schaltfläche angewendet werden:
<Button FontSize="8"
Height="{x:Static SystemParameters.CaptionHeight}"
Width="{x:Static SystemParameters.IconGridWidth}"
Content="System Parameters">
</Button>
Um die Werte von SystemParameters in Code zu verwenden, müssen keine statischen Verweise oder dynamischen Ressourcenverweise verwenden. Verwenden Sie stattdessen die Werte der SystemParameters-Klasse. Obwohl die Nichtschlüsseleigenschaften scheinbar als statische Eigenschaften definiert sind, wertet das Vom System gehostete Laufzeitverhalten von WPF die Eigenschaften in Echtzeit neu aus und berücksichtigt benutzergesteuerte Änderungen an Systemwerten ordnungsgemäß. 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
Systemparametereigenschaften können als statische oder dynamische Ressourcen verwendet werden. Verwenden Sie eine dynamische Ressource, wenn sich die Parametermetrik während der Ausführung der Anwendung aktualisieren soll; verwenden Sie andernfalls eine statische Ressource.
Hinweis
Dynamische Ressourcen haben das Schlüsselwort Key
an den Eigenschaftennamen angefügt.
Im folgenden Beispiel wird veranschaulicht, wie Sie auf dynamische Ressourcen der Systemparamter zugreifen und diese verwenden, um eine Schaltfläche zu formatieren oder anzupassen. In diesem XAML-Beispiel wird die Größe einer Schaltfläche durch Zuweisen von SystemParameters-Werten zur Breite und Höhe der Schaltfläche erhöht.
<Button FontSize="8"
Height="{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"
Width="{DynamicResource {x:Static SystemParameters.IconGridWidthKey}}"
Content="System Parameters">
</Button>
Weitere Informationen
.NET Desktop feedback