FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey Property

Definition

Ruft den Schlüssel ab, der zum Referenzieren der Formatvorlage für dieses Steuerelement verwendet werden soll, wenn Designformatvorlagen verwendet werden oder definiert sind.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

Eigenschaftswert

Der Formatvorlagenschlüssel.The style key. Damit er als Teil der Designformatvorlagen-Suche ordnungsgemäß funktioniert, wird erwartet, dass dieser Wert der Type des Steuerelements ist, das formatiert wird.To work correctly as part of theme style lookup, this value is expected to be the Type of the control being styled.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der Metadaten für Abhängigkeits Eigenschaften, die unter Hinweise erläutert werden.The following example illustrates the dependency property metadata override usage discussed in Remarks. Mit diesem Code wird eine benutzerdefinierte NumericUpDown Steuerelement Klasse definiert, die von einer dedizierten Steuerelement Bibliotheks Assembly verwendet werden soll.This code defines a custom control class NumericUpDown intended to be used from a dedicated control library assembly. Der dargestellte statische Konstruktor verweist auf eine private Initialisierungsfunktion, registriert einen Klassen Handler (ein anderes häufiges Steuerungs Unterklassen Szenario; Siehe Markieren von Routing Ereignissen als behandelt und Klassen Behandlung) und überschreibt schließlich das DefaultStyleKey Metadaten für Abhängigkeits Eigenschaften NumericUpDown für die-Klasse.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. DefaultStyleKeygibt immer seinen eigenen Typ als beabsichtigten Schlüssel zurück. Hierbei handelt es sich um die Konvention, die das Design System verwendet, um den Stil für ein beliebiges anderes, anderweitig nicht formatiertes Steuerelement zu suchen.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. Das Complete-Beispiel definiert auch das Design Format des eigentlichen Steuer Elements, auf das von diesem Schlüssel verwiesen wird. Weitere Informationen finden Sie unter benutzerdefiniertes NumericUpDown-Steuerelement mit Design und UI Automation Support SampleThe 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

Der gesamte Quellcode für dieses Beispiel ist auf GitHub sowohl C# für als auch für Visual Basicverfügbar.The complete source code for this example is available on GitHub for both C# and Visual Basic.

Hinweise

Diese Eigenschaft wird in der Regel nicht über einen ihrer direkten Eigenschaftenaccessoren festgelegt.This property is typically not set through any of its direct property accessors. Stattdessen überschreiben Sie jedes Mal, wenn Sie eine neue FrameworkElement abgeleitete Klasse erstellen, die typspezifischen Metadaten dieser Abhängigkeits Eigenschaft.Instead, you override the type-specific metadata of this dependency property every time you create a new FrameworkElement derived class. Wenn Sie ein Steuerelement ableiten, müssen OverrideMetadata Sie die- DefaultStyleKeyProperty Methode für den Bezeichner innerhalb des statischen Konstruktors der abgeleiteten Steuerelement Klasse (oder der entsprechenden Klassen Initialisierung) aufzurufen.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).

Ein Steuerelement überschreibt den Standardwert dieser Eigenschaft in der Regel als seinen eigenen Typ, aber in manchen Fällen könnte auch ein Basistyp verwendet werden, für den ein Stil in den Design Wörterbüchern vorhanden ist.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. Dies ist nur praktisch, wenn die Steuerelement Vorlagen des Basis Steuer Elements die visuelle Darstellung dieses abgeleiteten Steuer Elements vollständig definieren und wenn die von den abgeleiteten Typen bereitgestellten zusätzlichen Member keine zusätzlichen Elemente als Teil der Steuerelement Vorlage erfordern.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.

Wenn Sie möchten, dass das Element oder Steuerelement absichtlich keine Designstile verwendet, OverridesDefaultStyle legen Sie truedie-Eigenschaft auf fest.If you want your element or control to deliberately not use theme styles, set the OverridesDefaultStyle property to true.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

BezeichnerfeldIdentifier field DefaultStyleKeyProperty
Metadateneigenschaften auf true festgelegtMetadata properties set to true AffectsMeasure

Gilt für:

Siehe auch