FrameworkElement.DefaultStyleKey Propriété

Définition

Obtient ou définit la clé à utiliser pour faire référence au style pour ce contrôle, quand des styles de thème sont utilisés ou définis.

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

Valeur de propriété

Clé du style. Pour fonctionner correctement dans le cadre de la recherche du style de thème, cette valeur doit être le Type du contrôle auquel le style va être appliqué.

Exemples

L’exemple suivant illustre l’utilisation des métadonnées de propriété de dépendance décrite dans Remarques. Ce code définit une classe NumericUpDown de contrôle personnalisée destinée à être utilisée à partir d’un assembly de bibliothèque de contrôles dédié. Le constructeur statique illustré fait référence à une fonction d’initialisation privée, inscrit un gestionnaire de classes (un autre scénario de sous-classification de contrôle courant ; voir Marquage des événements routés en tant que handled et gestion des classes) et enfin remplace les métadonnées de la DefaultStyleKey propriété de dépendance sur la NumericUpDown classe. DefaultStyleKey retourne toujours son propre type en tant que clé prévue, qui est la convention que le système de style de thème utilise pour rechercher le style pour un contrôle arbitraire sinon sans style.

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

Le code source complet de cet exemple est disponible pour Visual Basic.

Remarques

Cette propriété n’est généralement définie via aucun de ses accesseurs de propriété directe. Au lieu de cela, vous remplacez les métadonnées spécifiques au type de cette propriété de dépendance chaque fois que vous créez une classe FrameworkElement dérivée. Lorsque vous dérivez un contrôle, appelez la OverrideMetadata méthode par rapport à l’identificateur DefaultStyleKeyProperty , au sein du constructeur statique de la classe dérivée du contrôle (ou d’une initialisation de classe équivalente).

Un contrôle remplace généralement la valeur par défaut de cette propriété pour qu’elle soit son propre type, mais dans certains cas, il peut également utiliser un type de base pour lequel il existe un style dans les dictionnaires de thèmes. Cela n’est pratique que si les modèles de contrôle du contrôle de base définissent entièrement la représentation visuelle de ce contrôle dérivé, et si les membres supplémentaires exposés par les types dérivés ne nécessitent pas d’éléments supplémentaires dans le cadre du modèle de contrôle.

Si vous souhaitez que votre élément ou contrôle n’utilise délibérément pas de styles de thème, définissez la propriété sur OverridesDefaultStyletrue.

Informations sur les propriétés de dépendance

Champ Identificateur DefaultStyleKeyProperty
Propriétés de métadonnées définies sur true AffectsMeasure

S’applique à

Voir aussi