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. 전체 샘플은 또한 해당 키에서 참조 되는 실제 컨트롤의 테마 스타일을 정의 참조 테마 및 UI 자동화 지원 샘플이 있는 NumericUpDown 사용자 지정 컨트롤합니다.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()
        {
            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

이 예제에 대 한 전체 소스 코드는 모두 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

적용 대상

추가 정보