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

プロパティ値

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

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

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

この例の完全なソース コードは 、Visual Basic で使用できます。

注釈

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

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

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

依存プロパティ情報

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

適用対象

こちらもご覧ください