FrameworkElement.DefaultStyleKey Właściwość

Definicja

Pobiera lub ustawia klucz, który będzie używany do odwoływania się do stylu dla tej kontrolki, gdy są używane lub zdefiniowane style motywu.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

Wartość właściwości

Object

Klucz stylu.The style key. Aby prawidłowo działać jako część wyszukiwania w stylu motywu, ta wartość powinna być wartością Type kontrolki z stylem.To work correctly as part of theme style lookup, this value is expected to be the Type of the control being styled.

Przykłady

Poniższy przykład ilustruje użycie zastąpień metadanych właściwości zależności omówione w uwagi.The following example illustrates the dependency property metadata override usage discussed in Remarks. Ten kod definiuje klasę formantów niestandardowych, która ma NumericUpDown zostać użyta z dedykowanego zestawu biblioteki formantów.This code defines a custom control class NumericUpDown intended to be used from a dedicated control library assembly. Zilustrowany Konstruktor statyczny odwołuje się do pewnej prywatnej funkcji inicjującej, rejestruje procedurę obsługi klasy (inny scenariusz podklasy kontrolki wspólnej), zobacz oznaczanie zdarzeń kierowanych jako obsłużone i obsługa klasy,a wreszcie zastępuje DefaultStyleKey metadane właściwości zależności NumericUpDown klasy.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 zawsze zwraca swój własny typ jako zamierzony klucz, który jest konwencją używaną przez system stylu motywu do wyszukania stylu dla dowolnego dowolnie innej kontrolki.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. Kompletny przykład definiuje również styl motywu rzeczywistej kontrolki, do którego odwołuje się ten klucz; Zobacz kontrolkę niestandardową NumericUpDown z motywem i przykładem obsługi automatyzacji interfejsu użytkownika.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

Pełny kod źródłowy tego przykładu jest dostępny w witrynie GitHub dla języków C# i Visual Basic.The complete source code for this example is available on GitHub for both C# and Visual Basic.

Uwagi

Ta właściwość zwykle nie jest ustawiana za pośrednictwem żadnej z bezpośrednich metod dostępu do właściwości.This property is typically not set through any of its direct property accessors. Zamiast tego przesłonić metadane specyficzne dla typu tej właściwości zależności za każdym razem, gdy tworzysz nową FrameworkElement klasę pochodną.Instead, you override the type-specific metadata of this dependency property every time you create a new FrameworkElement derived class. Gdy uzyskujesz kontrolę, wywołaj OverrideMetadata metodę względem DefaultStyleKeyProperty identyfikatora, w ramach konstruktora statycznego klasy pochodnej formantu (lub równoważnej inicjacji klasy).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).

Kontrolka zwykle zastępuje domyślną wartość tej właściwości jako własny typ, ale w niektórych przypadkach może również użyć typu podstawowego, dla którego istnieje styl w słownikach motywów.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. Jest to możliwe tylko wtedy, gdy szablony kontrolek podstawowych całkowicie definiują wizualną reprezentację tej kontrolki pochodnej, a jeśli jakiekolwiek dodatkowe elementy członkowskie ujawniane przez typy pochodne nie wymagają dodatkowych elementów jako części szablonu kontrolki.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.

Jeśli chcesz, aby element lub formant nie używał stylów motywu, ustaw OverridesDefaultStyle Właściwość na true .If you want your element or control to deliberately not use theme styles, set the OverridesDefaultStyle property to true.

Informacje dotyczące właściwości zależnościDependency Property Information

Pole identyfikatoraIdentifier field DefaultStyleKeyProperty
Właściwości metadanych ustawione na trueMetadata properties set to true AffectsMeasure

Dotyczy

Zobacz też