FrameworkElement.DefaultStyleKey Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece la clave que usará para hacer referencia al estilo de este control, cuando se utilicen o se definan estilos de tema.
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. 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.
Ejemplos
En el ejemplo siguiente se muestra el uso de invalidación de metadatos de la propiedad de dependencia descrito en Comentarios. Este código define una clase NumericUpDown
de control personalizada destinada a usarse desde un ensamblado de biblioteca de controles dedicado. El constructor estático ilustrado hace referencia a alguna función de inicialización privada, registra un controlador de clases (otro escenario de subclases de control común; vea Marcar eventos enrutados como controlados y Control de clases) y, por último, invalida los metadatos de la DefaultStyleKey propiedad de dependencia en la NumericUpDown
clase.
DefaultStyleKey siempre devuelve su propio tipo como clave prevista, que es la convención que usa el sistema de estilo de tema para buscar el estilo para algún control arbitrario que no tiene estilo.
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 para Visual Basic.
Comentarios
Normalmente, esta propiedad no se establece a través de ninguno de sus descriptores de acceso de propiedad directa. En su lugar, invalida los metadatos específicos del tipo de esta propiedad de dependencia cada vez que se crea una nueva FrameworkElement clase derivada. Cuando se deriva un control, llame al OverrideMetadata método con el DefaultStyleKeyProperty identificador, dentro del constructor estático de la clase derivada del control (o inicialización de clase equivalente).
Un control normalmente 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. 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 los miembros adicionales que exponen los tipos derivados no requieren elementos adicionales como parte de la plantilla de control.
Si desea que el elemento o el control no usen deliberadamente estilos de tema, establezca la OverridesDefaultStyle propiedad true
en .
Información sobre propiedades de dependencia
Campo identificador | DefaultStyleKeyProperty |
Propiedades de metadatos establecidas en true |
AffectsMeasure |