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 элемента управления, предназначенный для использования из выделенной сборки библиотеки элементов управления. Иллюстрированный статический конструктор ссылается на некоторые функции частной инициализации, регистрирует обработчик класса (еще один распространенный сценарий подклассов элемента управления; см. статью Маркировка перенаправленных событий как обработанных и Обработка классов) и, наконец, переопределяет 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 производного класса. При наследовав элементе управления, вызовите OverrideMetadata метод для DefaultStyleKeyProperty идентификатора в статическом конструкторе класса, производного от элемента управления (или эквивалентной инициализации класса).

Элемент управления обычно переопределяет значение по умолчанию этого свойства, чтобы быть его собственным типом, но в некоторых случаях может также использовать базовый тип, для которого существует стиль в словарях тем. Это целесообразно только в том случае, если шаблоны элементов управления базового элемента управления полностью определяют визуальное представление этого производного элемента управления и если любые дополнительные члены, предоставляемые производными типами, не требуют дополнительных элементов в составе шаблона элемента управления.

Если вы хотите, чтобы элемент или элемент управления намеренно не использовали стили темы, задайте для OverridesDefaultStyle свойства значение true.

Сведения о свойстве зависимостей

Поле идентификатора DefaultStyleKeyProperty
Для свойств метаданных задано значение true AffectsMeasure

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

См. также раздел