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 с темой и поддержкой модели автоматизации пользовательского интерфейса.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

Применяется к

Дополнительно