Partager via


FrameworkElement.DefaultStyleKey Propriété

Définition

Obtient ou définit la clé à utiliser pour référencer le style de ce contrôle, lorsque les 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é

Touche de style. Pour fonctionner correctement dans le cadre de la recherche de style de thème, cette valeur est censée être le Type contrôle en cours de style.

Exemples

L’exemple suivant illustre l’utilisation des métadonnées de propriété de dépendance qui remplacent l’utilisation décrite dans Les 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-classe de contrôle commun ; consultez Marquage d’événements routés en tant que handled et gestion des classes) et remplace enfin les DefaultStyleKey métadonnées de propriété de dépendance sur la NumericUpDown classe. DefaultStyleKey retourne toujours son propre type comme clé prévue, c’est-à-dire la convention que le système de style de thème utilise pour rechercher le style d’un contrôle arbitraire autrement non 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 pas définie par le biais de ses accesseurs de propriété directes. 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 FrameworkElement classe dérivée. Lorsque vous dérivez un contrôle, appelez la OverrideMetadata méthode par rapport à l’identificateur DefaultStyleKeyProperty , dans le constructeur statique de la classe dérivée du contrôle (ou l’initialisation de classe équivalente).

Un contrôle remplace généralement la valeur par défaut de cette propriété pour être son propre type, mais dans certains cas peut également utiliser un type de base pour lequel un style dans les dictionnaires de thèmes existe. 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 que les types dérivés exposent 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 pas délibérément les styles de thème, définissez la OverridesDefaultStyle propriété truesur .

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

Élément Valeur
Champ d’identificateur DefaultStyleKeyProperty
Propriétés de métadonnées définies sur true AffectsMeasure

S’applique à

Voir aussi