FrameworkElement.DefaultStyleKey Proprietà

Definizione

Ottiene o imposta la chiave da usare per fare riferimento allo stile per il controllo quando vengono usati o definiti stili del tema.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

Valore della proprietà

Object

Chiave di stile.The style key. Perché funzioni correttamente durante la ricerca dello stile del tema, l'oggetto Type di questo valore deve corrispondere a quello del controllo a cui viene applicato lo stile.To work correctly as part of theme style lookup, this value is expected to be the Type of the control being styled.

Esempio

Nell'esempio seguente vengono illustrati i metadati della proprietà di dipendenza che sostituiscono l'utilizzo descritto nei commenti.The following example illustrates the dependency property metadata override usage discussed in Remarks. Questo codice definisce una classe del controllo personalizzata NumericUpDown progettata per essere utilizzata da un assembly della libreria di controlli dedicati.This code defines a custom control class NumericUpDown intended to be used from a dedicated control library assembly. Il costruttore statico illustrato fa riferimento a una funzione di inizializzazione privata, registra un gestore di classi (un altro scenario di sottoclasse di controllo comune; vedere contrassegno degli eventi indirizzati come gestiti e gestione delle classi) e infine esegue l'override dei DefaultStyleKey metadati della proprietà di dipendenza nella NumericUpDown classe.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. DefaultStyleKey restituisce sempre il proprio tipo come chiave prevista, ovvero la convenzione utilizzata dal sistema di stili del tema per cercare lo stile per un controllo arbitrario altrimenti non in stile.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. L'esempio completo definisce anche lo stile del tema del controllo effettivo a cui fa riferimento tale chiave. vedere controllo personalizzato NumericUpDown con tema ed esempio di supporto per automazione interfaccia utente.The 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

Il codice sorgente completo per questo esempio è disponibile in GitHub sia per C# che per Visual Basic.The complete source code for this example is available on GitHub for both C# and Visual Basic.

Commenti

Questa proprietà non viene in genere impostata tramite alcuna delle funzioni di accesso diretto alle proprietà.This property is typically not set through any of its direct property accessors. Al contrario, i metadati specifici del tipo di questa proprietà di dipendenza vengono sostituiti ogni volta che si crea una nuova FrameworkElement classe derivata.Instead, you override the type-specific metadata of this dependency property every time you create a new FrameworkElement derived class. Quando si deriva un controllo, chiamare il OverrideMetadata metodo con l' DefaultStyleKeyProperty identificatore, all'interno del costruttore statico della classe derivata del controllo (o dell'inizializzazione della classe equivalente).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).

Un controllo in genere esegue l'override del valore predefinito di questa proprietà in modo che sia di tipo, ma in alcuni casi può utilizzare anche un tipo di base per il quale esiste uno stile nei dizionari del tema.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. Questa operazione è utile solo se i modelli di controllo del controllo di base definiscono completamente la rappresentazione visiva del controllo derivato e se tutti i membri aggiuntivi esposti dai tipi derivati non richiedono elementi aggiuntivi come parte del modello di controllo.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.

Se si vuole che l'elemento o il controllo non usi intenzionalmente gli stili del tema, impostare la OverridesDefaultStyle proprietà su true .If you want your element or control to deliberately not use theme styles, set the OverridesDefaultStyle property to true.

Informazioni proprietà di dipendenzaDependency Property Information

Campo identificatoreIdentifier field DefaultStyleKeyProperty
Proprietà dei metadati impostate su trueMetadata properties set to true AffectsMeasure

Si applica a

Vedi anche