FrameworkElement.DefaultStyleKey Propiedad

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

En el ejemplo siguiente se muestra el uso de invalidaciones de metadatos de propiedad de dependencia descritos en Comentarios.The following example illustrates the dependency property metadata override usage discussed in Remarks. Este código define una clase de control personalizada NumericUpDown pensada para usarse desde un ensamblado de biblioteca de controles 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 de subclases de control común; vea marcar eventos enrutados como controlados y control de clases) y, por último, invalida el @no__t_ metadatos de la propiedad de dependencia 1_ en la clase NumericUpDown.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 el sistema de estilo de tema utiliza para buscar el estilo de algún control arbitrario sin estilo.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 al que hace referencia esa clave; vea ejemplo de control personalizado NumericUpDown con el tema y compatibilidad con automatización de la interfaz de usuario.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 de este ejemplo está disponible en GitHub para C# y Visual Basic.The complete source code for this example is available on GitHub for both C# and Visual Basic.

Comentarios

Normalmente, esta propiedad no se establece a través de ninguno de sus descriptores de acceso de propiedad directos.This property is typically not set through any of its direct property accessors. En su lugar, se invalidan los metadatos específicos del tipo de esta propiedad de dependencia cada vez que se crea una nueva 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 al método OverrideMetadata con el identificador de DefaultStyleKeyProperty, dentro del constructor estático de la clase derivada del control (o una 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 invalida el valor predeterminado de esta propiedad para que sea su propio tipo, pero en algunos casos también podría usar un tipo base para el que existe un estilo en los diccionarios de temas.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 por completo la representación visual de ese control derivado y si los miembros adicionales que exponen los tipos derivados no requieren 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 utilicen deliberadamente estilos de tema, establezca la propiedad OverridesDefaultStyle en 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
Propiedades de metadatos establecidas en trueMetadata properties set to true AffectsMeasure

Se aplica a

Consulte también: