FrameworkElement.DefaultStyleKey Eigenschaft

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.

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. Damit er als Teil der Designformatvorlagen-Suche ordnungsgemäß funktioniert, wird erwartet, dass dieser Wert der Type des Steuerelements ist, das formatiert wird.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die Metadaten der Abhängigkeitseigenschaft die Verwendung außer Kraft setzen, die unter Hinweise erläutert wird. Dieser Code definiert eine benutzerdefinierte Steuerelementklasse NumericUpDown , die von einer dedizierten Steuerelementbibliotheksassembly verwendet werden soll. Der veranschaulichte statische Konstruktor verweist auf eine private Initialisierungsfunktion, registriert einen Klassenhandler (ein weiteres gängiges Steuerelementunterklassenszenario; siehe Markieren von Routingereignissen als verarbeitet und Klassenbehandlung) und setzt schließlich die Metadaten der DefaultStyleKey Abhängigkeitseigenschaft für die NumericUpDown -Klasse außer Kraft. DefaultStyleKey Gibt immer einen eigenen Typ als beabsichtigten Schlüssel zurück. Dies ist die Konvention, die das Designstilsystem verwendet, um die Formatvorlage für ein beliebiges, ansonsten nicht formatiertes Steuerelement nachzuschlagen.

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 vollständige Quellcode für dieses Beispiel ist für Visual Basic verfügbar.

Hinweise

Diese Eigenschaft wird in der Regel nicht über einen der direkten Eigenschaftszugriffe festgelegt. Stattdessen überschreiben Sie die typspezifischen Metadaten dieser Abhängigkeitseigenschaft jedes Mal, wenn Sie eine neue FrameworkElement abgeleitete Klasse erstellen. Wenn Sie ein Steuerelement ableiten, rufen Sie die OverrideMetadata -Methode für den DefaultStyleKeyProperty Bezeichner innerhalb des statischen Konstruktors der vom Steuerelement abgeleiteten Klasse (oder der entsprechenden Klasseninitialisierung) auf.

Ein Steuerelement überschreibt in der Regel den Standardwert dieser Eigenschaft, um einen eigenen Typ zu sein, kann aber in einigen Fällen auch einen Basistyp verwenden, für den eine Formatvorlage in den Designwörterbüchern vorhanden ist. Dies ist nur sinnvoll, wenn die Steuerelementvorlagen des Basissteuerelements die visuelle Darstellung des abgeleiteten Steuerelements vollständig definieren und wenn die abgeleiteten Typen zusätzliche Elemente nicht als Teil der Steuerelementvorlage benötigen.

Wenn Ihr Element oder Steuerelement absichtlich keine Designstile verwendet, legen Sie die OverridesDefaultStyle -Eigenschaft auf fest true.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld DefaultStyleKeyProperty
Metadateneigenschaften auf true festgelegt AffectsMeasure

Gilt für:

Weitere Informationen