FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey FrameworkElement.DefaultStyleKey Property

Definición

Obtiene o establece la clave que usará para hacer referencia al estilo de este control, cuando se utilicen o se definan estilos de 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

Valor de propiedad

La clave de estilo.The style key. Para que funcione correctamente como parte de la búsqueda de estilo de tema, se espera que este valor sea el elemento Type del control al que se está aplicando un estilo.To work correctly as part of theme style lookup, this value is expected to be the Type of the control being styled.

Ejemplos

El ejemplo siguiente muestra el uso de invalidación de metadatos de propiedad de dependencia descrito en la sección Comentarios.The following example illustrates the dependency property metadata override usage discussed in Remarks. Este código define una clase de control personalizado NumericUpDown diseñado para utilizarse desde un ensamblado de biblioteca de control dedicado.This code defines a custom control class NumericUpDown intended to be used from a dedicated control library assembly. El constructor estático ilustrado hace referencia a alguna función de inicialización privada, registra un controlador de clase (otro escenario común de creación de subclases de control; vea Marcar eventos enrutados como controlados y control de clases) y, finalmente, invalida el DefaultStyleKey metadatos de propiedad de dependencia en el NumericUpDown clase.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 siempre devuelve su propio tipo como la clave deseada, que es la convención que usa el sistema de estilo de tema para buscar el estilo de algún control sin estilo arbitrario.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. El ejemplo completo también define el estilo de tema del control real que se hace referencia por esa tecla; consulte NumericUpDown Custom Control con tema y UI Automation Support Sample.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

El código fuente completo para este ejemplo está disponible en GitHub para ambos C# y Visual Basic.The complete source code for this example is available on GitHub for both C# and Visual Basic.

Comentarios

Esta propiedad no se establece normalmente a través de cualquiera de sus descriptores de acceso directo.This property is typically not set through any of its direct property accessors. En su lugar, invalide los metadatos específicos del tipo de esta propiedad de dependencia cada vez que crea un nuevo FrameworkElement clase derivada.Instead, you override the type-specific metadata of this dependency property every time you create a new FrameworkElement derived class. Al derivar un control, llame a la OverrideMetadata método contra el DefaultStyleKeyProperty identificador dentro del constructor estático del control derivado de clase (o la inicialización de clase 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).

Normalmente, un control reemplaza el valor predeterminado de esta propiedad sea su propio tipo, pero en algunos casos, también puede usar un tipo base para el que existe un estilo en los diccionarios de 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. Esto solo es práctico si las plantillas de control del control base definen completamente la representación visual de ese control derivado y si cualquier miembro adicional que exponen los tipos derivados no requieren los elementos adicionales como parte de la plantilla de control.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.

Si desea que el elemento o el control no use deliberadamente estilos de tema, establezca el OverridesDefaultStyle propiedad true.If you want your element or control to deliberately not use theme styles, set the OverridesDefaultStyle property to true.

Información sobre propiedades de dependenciaDependency Property Information

Campo de identificadorIdentifier field DefaultStyleKeyProperty
Establecen las propiedades de metadatos en trueMetadata properties set to true AffectsMeasure

Se aplica a

Consulte también: