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 |