FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey Property


テーマ スタイルを使用または定義するときに、このコントロールのスタイルを参照するために使用されるキーを取得または設定します。Gets or sets the key to use to reference the style for this control, when theme styles are used or defined.

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


スタイルのキー。The style key. テーマ スタイル参照の一部として正常に機能するために、この値は、スタイルを設定するコントロールの Type である必要があります。To work correctly as part of theme style lookup, this value is expected to be the Type of the control being styled.

次の例は、「解説」で説明されている依存関係プロパティ メタデータのオーバーライド使用を示しています。The following example illustrates the dependency property metadata override usage discussed in Remarks. このコードは、カスタム コントロール クラスを定義します。NumericUpDown専用コントロール ライブラリのアセンブリから使用するためのものです。This code defines a custom control class NumericUpDown intended to be used from a dedicated control library assembly. イラストの静的コンス トラクターがプライベートの初期化関数を参照、クラス ハンドラーを登録します (別の一般的なコントロールをサブクラス化シナリオルーティング イベントの処理済み、およびクラス処理としてのマーキング) と最後に上書き、DefaultStyleKeyで依存関係プロパティ メタデータ、NumericUpDownクラス。The illustrated static constructor references some private initialization function, registers a class handler (another common control subclassing scenario; see Marking Routed Events as Handled, and Class Handling) and finally overrides the DefaultStyleKey dependency property metadata on the NumericUpDown class. DefaultStyleKey テーマ スタイルのシステムを使用していくつか任意が設定されていないコントロールのスタイルを検索する規則は、目的のキーとして常に独自の型を返します。DefaultStyleKey always returns its own type as the intended key, which is the convention that the theme style system uses to look up the style for some arbitrary otherwise non-styled control. 完全なサンプルは、そのキーによって参照される実際のコントロールのテーマのスタイルも定義されています。参照してくださいNumericUpDown カスタム コントロールのテーマと UI Automation Support Sampleします。The complete sample also defines the actual control's theme style that is referenced by that key; see 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()

            // Listen to MouseLeftButtonDown event to determine if slide should move focus to itself
                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()

			' 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

この例の完全なソース コードは GitHub の両方で使用可能 C# Visual Basicします。The complete source code for this example is available on GitHub for both C# and Visual Basic.


このプロパティは、通常はその直接のプロパティ アクセサーのいずれかを設定されません。This property is typically not set through any of its direct property accessors. 新規に作成するたびにこの依存関係プロパティの種類に固有のメタデータをオーバーライドする代わりに、FrameworkElementクラスを派生します。Instead, you override the type-specific metadata of this dependency property every time you create a new FrameworkElement derived class. コントロールを派生するときに呼び出す、OverrideMetadataメソッドに対して、DefaultStyleKeyPropertyクラス (または同等のクラスの初期化) 派生したコントロールの静的コンス トラクター内の識別子。When you derive a control, call the OverrideMetadata method against the DefaultStyleKeyProperty identifier, within the static constructor of the control derived class (or equivalent class initialization).

コントロールは通常、独自の型を指定するには、このプロパティの既定値よりも優先されますが、場合によってはのテーマ ディクショナリでスタイルが存在する基本データ型も同じで使用できます。A control typically overrides the default value of this property to be its own type, but in some cases could also use a base type for which a style in the theme dictionaries exists. これは、基本コントロールのコントロール テンプレートが完全に、その派生コントロールの視覚的表現を定義し、どのような追加のメンバーが派生型を公開、コントロール テンプレートの一部として追加の要素が必要ない場合にのみ実用的です。This is only practical if the control templates of the base control entirely define the visual representation of that derived control, and if whatever additional members the derived types expose do not require additional elements as part of the control template.

要素または意図的にないテーマ スタイルを使用するコントロールをする場合、設定、OverridesDefaultStyleプロパティをtrueします。If you want your element or control to deliberately not use theme styles, set the OverridesDefaultStyle property to true.

依存プロパティ情報Dependency Property Information

識別子フィールドです。Identifier field DefaultStyleKeyProperty
メタデータのプロパティを設定するには trueMetadata properties set to true AffectsMeasure