如何使用系統資源 (WPF .NET)
此範例將示範如何使用系統定義的資源。 系統資源是由 WPF 提供,並允許存取作業系統資源,例如字型、色彩和圖示。 系統資源會將數個系統定義的值同時公開為資源和屬性,協助您建立與 Windows 一致的視覺效果。
字型
使用 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 類別以參考系統層級屬性,例如主要顯示器的大小。 此類別包含系統指標值屬性以及其有關的來源。 比如說,FullPrimaryScreenHeight 是 SystemParameters 屬性值,而 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>