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 |