Jak używać zasobów systemowych (WPF .NET)
W tym przykładzie pokazano, jak używać zasobów zdefiniowanych przez system. Zasoby systemowe są udostępniane przez WPF i umożliwiają dostęp do zasobów systemu operacyjnego, takich jak czcionki, kolory i ikony. Zasoby systemowe uwidaczniają kilka wartości zdefiniowanych przez system jako zarówno zasobów, jak i właściwości, aby ułatwić tworzenie wizualizacji spójnych z systemem Windows.
Czcionki
Użyj klasy SystemFonts, aby odwołać się do czcionek używanych przez system operacyjny. Ta klasa zawiera wartości czcionek systemowych jako właściwości statyczne i właściwości odwołujące się do kluczy zasobów, które mogą służyć do dynamicznego uzyskiwania dostępu do tych wartości w czasie wykonywania. Na przykład CaptionFontFamily jest wartością SystemFonts, a CaptionFontFamilyKey jest odpowiednim kluczem zasobu.
W poniższym przykładzie pokazano, jak uzyskać dostęp do właściwości SystemFonts i używać ich jako wartości statycznych do stylu lub dostosować blok tekstu:
<TextBlock FontSize="{x:Static SystemFonts.SmallCaptionFontSize}"
FontWeight="{x:Static SystemFonts.SmallCaptionFontWeight}"
FontFamily="{x:Static SystemFonts.SmallCaptionFontFamily}"
Text="Small Caption Font">
</TextBlock>
Aby użyć wartości SystemFonts w kodzie, nie musisz używać wartości statycznej ani odwołania do zasobów dynamicznych. Zamiast tego należy użyć właściwości innych niż klucz klasy SystemFonts. Chociaż właściwości inne niż klucz są najwyraźniej zdefiniowane jako właściwości statyczne, zachowanie WPF w czasie wykonywania, jako hostowanej przez system, przeanalizuje ponownie właściwości w czasie rzeczywistym i będzie prawidłowo uwzględniać zmiany wprowadzone przez użytkowników w wartościach systemowych. W poniższym przykładzie pokazano, jak określić ustawienia czcionki przycisku:
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)
Czcionki dynamiczne w języku XAML
Metryki czcionek systemowych mogą być używane jako zasoby statyczne lub dynamiczne. Użyj zasobu dynamicznego, jeśli chcesz, aby metryka czcionki aktualizowała się automatycznie podczas uruchamiania aplikacji; w przeciwnym razie użyj zasobu statycznego.
Notatka
Zasoby dynamiczne mają słowo kluczowe Key
dołączone do nazwy właściwości.
W poniższym przykładzie pokazano, jak uzyskać dostęp do zasobów dynamicznych czcionek systemowych i używać ich do stylu lub dostosować blok tekstu:
<TextBlock FontSize="{DynamicResource {x:Static SystemFonts.SmallCaptionFontSize}}"
FontWeight="{DynamicResource {x:Static SystemFonts.SmallCaptionFontWeight}}"
FontFamily="{DynamicResource {x:Static SystemFonts.SmallCaptionFontFamily}}"
Text="Small Caption Font">
</TextBlock>
Parametry
Użyj klasy SystemParameters, aby odwołać się do właściwości na poziomie systemu, takich jak rozmiar wyświetlacza podstawowego. Ta klasa zawiera zarówno właściwości wartości parametru systemu, jak i klucze zasobów powiązane z wartościami. Na przykład FullPrimaryScreenHeight jest wartością właściwości SystemParameters, a FullPrimaryScreenHeightKey jest odpowiednim kluczem zasobu.
W poniższym przykładzie pokazano, jak uzyskiwać dostęp do wartości statycznych SystemParameters i używać ich do stylu lub dostosowywania przycisku. Ten przykład znaczników definiuje rozmiar przycisku, stosując wartości SystemParameters dla przycisku.
<Button FontSize="8"
Height="{x:Static SystemParameters.CaptionHeight}"
Width="{x:Static SystemParameters.IconGridWidth}"
Content="System Parameters">
</Button>
Aby użyć wartości SystemParameters w kodzie, nie musisz używać odwołań statycznych ani odwołań do zasobów dynamicznych. Zamiast tego użyj wartości klasy SystemParameters. Mimo że właściwości inne niż kluczowe są najwyraźniej zdefiniowane jako właściwości statyczne, zachowanie WPF-a uruchomionego na systemie spowoduje ponowne przeliczenie tych właściwości w czasie rzeczywistym i będzie prawidłowo uwzględniać zmiany wartości systemowych dokonane przez użytkowników. W poniższym przykładzie pokazano, jak ustawić szerokość i wysokość przycisku przy użyciu wartości SystemParameters:
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)
Parametry dynamiczne w języku XAML
Metryki parametrów systemowych mogą być używane jako zasoby statyczne lub dynamiczne. Użyj zasobu dynamicznego, jeśli chcesz, aby metryka parametru aktualizowała się automatycznie podczas uruchamiania aplikacji; w przeciwnym razie użyj zasobu statycznego.
Uwaga
Zasoby dynamiczne mają słowo kluczowe Key
dołączone do nazwy właściwości.
W poniższym przykładzie pokazano, jak uzyskać dostęp do zasobów dynamicznych parametrów systemowych i używać ich do stylu lub dostosowywania przycisku. Ten przykład XAML określa rozmiar przycisku, przypisując SystemParameters wartości do szerokości i wysokości przycisku.
<Button FontSize="8"
Height="{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"
Width="{DynamicResource {x:Static SystemParameters.IconGridWidthKey}}"
Content="System Parameters">
</Button>
Zobacz też
.NET Desktop feedback