FrameworkElement.DefaultStyleKey Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta la chiave da usare per fare riferimento allo stile per il controllo quando vengono usati o definiti stili del tema.
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à
Chiave di stile. 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.
Esempio
Nell'esempio seguente viene illustrato l'utilizzo dell'override dei metadati delle proprietà di dipendenza descritto in Osservazioni. Questo codice definisce una classe NumericUpDown
di controllo personalizzata che deve essere usata da un assembly della libreria di controlli dedicato. 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 Contrassegnare gli eventi indirizzati come gestiti e Gestione classi) e infine esegue l'override dei metadati della DefaultStyleKey proprietà di dipendenza nella NumericUpDown
classe .
DefaultStyleKey restituisce sempre il proprio tipo come chiave desiderata, ovvero la convenzione usata dal sistema di stile del tema per cercare lo stile per un controllo arbitrario altrimenti non in stile.
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 per Visual Basic.
Commenti
Questa proprietà in genere non viene impostata tramite alcuna delle relative funzioni di accesso alle proprietà dirette. Si esegue invece l'override dei metadati specifici del tipo di questa proprietà di dipendenza ogni volta che si crea una nuova FrameworkElement classe derivata. Quando si deriva un controllo, chiamare il OverrideMetadata metodo sull'identificatore all'interno DefaultStyleKeyProperty del costruttore statico della classe derivata del controllo (o inizializzazione della classe equivalente).
Un controllo esegue in genere l'override del valore predefinito di questa proprietà come proprio tipo, ma in alcuni casi può anche usare un tipo di base per il quale esiste uno stile nei dizionari dei temi. Ciò è pratico solo se i modelli di controllo del controllo di base definiscono interamente la rappresentazione visiva di tale controllo derivato e, se i membri aggiuntivi esposti dai tipi derivati non richiedono elementi aggiuntivi come parte del modello di controllo.
Se si desidera che l'elemento o il controllo non usi deliberatamente gli stili del tema, impostare la OverridesDefaultStyle proprietà su true
.
Informazioni proprietà di dipendenza
Campo Identificatore | DefaultStyleKeyProperty |
Proprietà dei metadati impostate su true |
AffectsMeasure |