FrameworkElement.DefaultStyleKey プロパティ

定義

テーマ スタイルを使用または定義するときに、このコントロールのスタイルを参照するために使用されるキーを取得または設定します。

protected public:
 property System::Object ^ DefaultStyleKey { System::Object ^ get(); void set(System::Object ^ value); };
protected internal object DefaultStyleKey { get; set; }
member this.DefaultStyleKey : obj with get, set
Protected Friend Property DefaultStyleKey As Object

プロパティ値

Object

スタイルのキー。 テーマ スタイル参照の一部として正常に機能するために、この値は、スタイルを設定するコントロールの Type である必要があります。

次の例は、「解説」で説明されている依存関係プロパティメタデータオーバーライドの使用方法を示しています。 このコードは、 NumericUpDown 専用のコントロールライブラリアセンブリから使用することを意図したカスタムコントロールクラスを定義します。 図に示す静的コンストラクターは、いくつかのプライベート初期化関数を参照し、クラスハンドラーを登録します (もう1つの一般的なコントロールのサブクラス化に関する説明を参照してください。ルーティングイベントを処理済みとしてマークし、クラスを処理DefaultStyleKey ます)。最後に、クラスの依存関係プロパティのメタデータ NumericUpDown DefaultStyleKey は、意図したキーとして常に独自の型を返します。これは、テーマスタイルシステムが、任意の他のスタイルでないコントロールのスタイルを検索するために使用する規則です。 完全なサンプルでは、そのキーによって参照される実際のコントロールのテーマスタイルも定義します。「 NumericUpDown Custom Control With Theme AND UI Automation Support Sample」を参照してください。

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Automation.Peers;
using System.Windows.Automation.Provider;
using System.Windows.Automation;
using System.Globalization;
using System.Diagnostics;

namespace CustomControlLibrary
{
    public partial class NumericUpDown : Control
    {
        static NumericUpDown()
        {
            InitializeCommands();

            // Listen to MouseLeftButtonDown event to determine if slide should move focus to itself
            EventManager.RegisterClassHandler(typeof(NumericUpDown), 
                Mouse.MouseDownEvent, new MouseButtonEventHandler(NumericUpDown.OnMouseLeftButtonDown), true);

            DefaultStyleKeyProperty.OverrideMetadata(typeof(NumericUpDown), new FrameworkPropertyMetadata(typeof(NumericUpDown)));
        }
    }
}
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Input

Namespace CustomControlLibrary
    Public Partial Class NumericUpDown
        Inherits Control

        Shared Sub New()
            InitializeCommands()

            ' Listen to MouseLeftButtonDown event to determine if slide should move focus to itself
            EventManager.RegisterClassHandler(GetType(NumericUpDown), Mouse.MouseDownEvent, New MouseButtonEventHandler(AddressOf NumericUpDown.OnMouseLeftButtonDown), True)

            DefaultStyleKeyProperty.OverrideMetadata(GetType(NumericUpDown), New FrameworkPropertyMetadata(GetType(NumericUpDown)))
        End Sub
    End Class
End Namespace

この例の完全なソースコードは、 C#Visual Basicの両方について GitHub で入手できます。

注釈

このプロパティは、通常、直接プロパティアクセサーのいずれかを使用して設定されるわけではありません。 代わりに、新しい派生クラスを作成するたびに、この依存関係プロパティの型固有のメタデータをオーバーライドし FrameworkElement ます。 コントロールを派生させる場合は、 OverrideMetadata DefaultStyleKeyProperty コントロールの派生クラス (または同等のクラスの初期化) の静的コンストラクター内で、識別子に対してメソッドを呼び出します。

通常、コントロールは、このプロパティの既定値を独自の型にオーバーライドしますが、場合によっては、テーマディクショナリ内のスタイルが存在する基本型を使用することもできます。 これは、基本コントロールのコントロールテンプレートでその派生コントロールのビジュアル表現が完全に定義されていて、派生型で公開されている追加のメンバーがコントロールテンプレートの一部として追加の要素を必要としない場合にのみ実用的です。

要素またはコントロールがテーマスタイルを意図的に使用しないようにするには、プロパティをに設定し OverridesDefaultStyle true ます。

依存プロパティ情報

識別子フィールド DefaultStyleKeyProperty
メタデータプロパティがに設定される true AffectsMeasure

適用対象

こちらもご覧ください