次の方法で共有


システム リソースの使用方法

この例では、システム定義リソースを使用する方法を示します。 システム リソースは 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>

こちらも参照ください