如何使用系統資源 (WPF .NET)

此範例示範如何使用系統定義的資源。 系統資源是由 WPF 提供,並允許存取作業系統資源,例如字型、色彩和圖示。 系統資源會將數個系統定義的值公開為資源和屬性,以協助您建立與 Windows 一致的視覺效果。

重要

.NET 5 (和 .NET Core) 的桌面指南檔正在結構中。

字型

使用 SystemFonts 類別可參考作業系統所使用的字型。 這個類別包含做為靜態屬性的系統字型值,以及參考可用來在執行時間動態存取這些值的資源索引鍵屬性。 例如, CaptionFontFamily 是一個 SystemFonts 值,而且 CaptionFontFamilyKey 是對應的資源索引鍵。

下列範例示範如何存取和使用的屬性 SystemFonts 做為靜態值,以進行樣式或自訂文字區塊:

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

若要在程式碼中使用的值 SystemFonts ,您不需要使用靜態值或動態資源參考。 請改用類別的非索引鍵屬性 SystemFonts 。 雖然非索引鍵屬性顯然定義為靜態屬性,但由系統裝載的 WPF 執行時間行為會即時重新評估屬性,並適當地將使用者驅動的系統值變更加以考慮。 下列範例顯示如何指定按鈕的字型設定:

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)

XAML 中的動態字型

系統字型度量資訊可以當成靜態或動態資源使用。 如果您想要在應用程式執行時自動更新字型度量,請使用動態資源;否則,請使用靜態資源。

注意

動態資源會將關鍵字 Key 附加至屬性名稱。

下列範例示範如何存取及使用系統字型動態資源,以建立樣式或自訂文字區塊:

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

參數

SystemParameters 可以使用類別來參考系統層級的屬性,例如主顯示器的大小。 這個類別包含系統參數值屬性,以及系結至值的資源金鑰。 例如, FullPrimaryScreenHeightSystemParameters 屬性值,而且 FullPrimaryScreenHeightKey 是對應的資源索引鍵。

下列範例將示範如何存取和使用的靜態值 SystemParameters 來建立樣式或自訂按鈕。 此標記範例會將值套用至按鈕,以調整按鈕的大小 SystemParameters

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

若要在程式碼中使用的值 SystemParameters ,您不需要使用靜態參考或動態資源參考。 請改用類別的值 SystemParameters 。 雖然非索引鍵屬性顯然定義為靜態屬性,但由系統裝載的 WPF 執行時間行為會即時重新評估屬性,並適當地將使用者驅動的系統值變更帳戶。 下列範例顯示如何使用值來設定按鈕的寬度和高度 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)

XAML 中的動態參數

系統參數度量資訊可以當成靜態或動態資源使用。 如果您想要在應用程式執行時自動更新參數度量,請使用動態資源;否則,請使用靜態資源。

注意

動態資源會將關鍵字 Key 附加至屬性名稱。

下列範例示範如何存取及使用系統參數動態資源,以設定或自訂按鈕的樣式。 這個 XAML 範例會將 SystemParameters 值指派給按鈕的寬度和高度,以調整按鈕的大小。

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

另請參閱