共用方式為


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

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

字型

使用 SystemFonts 類別以參考作業系統所使用的字型。 類別此包含作為靜態屬性的系統字型值,以及參考可用來在執行階段動態存取這些值之資源索引鍵的屬性。 比如說,CaptionFontFamilySystemFonts 值,而 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>

另請參閱