Поделиться через


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

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

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