Udostępnij za pośrednictwem


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

SystemFonts Użyj klasy , 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 i CaptionFontFamilyKey jest odpowiednim kluczem zasobu.

W poniższym przykładzie pokazano, jak uzyskać dostęp do właściwości i używać ich jako wartości statycznych SystemFonts 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 SystemFonts innych niż klucz klasy. Chociaż właściwości inne niż klucz są najwyraźniej zdefiniowane jako właściwości statyczne, zachowanie środowiska WPF jako hostowanego przez system spowoduje ponowne zwalczenie właściwości w czasie rzeczywistym i będzie prawidłowo uwzględniać zmiany oparte na użytkownikach na 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.

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 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

SystemParameters Użyj klasy , 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ą SystemParameters właściwości i FullPrimaryScreenHeightKey jest odpowiednim kluczem zasobu.

W poniższym przykładzie pokazano, jak uzyskać dostęp do wartości statycznych SystemParameters i użyć ich do stylu lub dostosować przycisk. Ten przykład znaczników określa rozmiar przycisku, stosując SystemParameters wartości do 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 SystemParameters klasy . Mimo że właściwości inne niż klucz są najwyraźniej zdefiniowane jako właściwości statyczne, zachowanie środowiska WPF jako hostowanego przez system spowoduje ponowne zwalczenie właściwości w czasie rzeczywistym i będzie prawidłowo uwzględniać zmiany oparte na użytkownikach na wartościach systemowych. W poniższym przykładzie pokazano, jak ustawić szerokość i wysokość przycisku przy użyciu SystemParameters wartości:

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ż