FrameworkElement.DefaultStyleKey Propriedade

Definição

Obtém ou define a chave a ser usada para fazer referência ao estilo deste controle, quando os estilos de tema são usados ou definidos.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 da propriedade

A chave de estilo.The style key. Para funcionar corretamente como parte da pesquisa de estilo do tema, espera-se que esse valor seja o Type do controle com estilo.To work correctly as part of theme style lookup, this value is expected to be the Type of the control being styled.

Exemplos

O exemplo a seguir ilustra o uso de substituição de metadados de propriedade de dependência discutido em comentários.The following example illustrates the dependency property metadata override usage discussed in Remarks. Esse código define uma classe de controle Personalizada NumericUpDown pretende ser usada em um assembly de biblioteca de controle dedicado.This code defines a custom control class NumericUpDown intended to be used from a dedicated control library assembly. O construtor estático ilustrado faz referência a alguma função de inicialização privada, registra um manipulador de classe (outro cenário de subclasse de controle comum; consulte marcação de eventos roteados como manipulados e manipulação de classe) e, por fim, substitui os metadados de propriedade de dependência DefaultStyleKey na classe 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 sempre retorna seu próprio tipo como a chave pretendida, que é a Convenção que o sistema de estilo de tema usa para pesquisar o estilo de um controle sem estilo arbitrário caso contrário.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. O exemplo completo também define o estilo de tema do controle real que é referenciado por essa chave; consulte o controle personalizado NumericUpDown com o tema e o exemplo de suporte de automação da interface do usuário.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

O código-fonte completo para este exemplo está disponível no GitHub para C# ambos e Visual Basic.The complete source code for this example is available on GitHub for both C# and Visual Basic.

Comentários

Essa propriedade normalmente não é definida por meio de qualquer um de seus acessadores de propriedade direta.This property is typically not set through any of its direct property accessors. Em vez disso, você substituirá os metadados específicos do tipo dessa propriedade de dependência sempre que criar uma nova classe derivada FrameworkElement.Instead, you override the type-specific metadata of this dependency property every time you create a new FrameworkElement derived class. Ao derivar um controle, chame o método OverrideMetadata em relação ao identificador de DefaultStyleKeyProperty, dentro do construtor estático da classe derivada de controle (ou inicialização de classe 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).

Um controle normalmente substitui o valor padrão dessa propriedade como seu próprio tipo, mas em alguns casos também poderia usar um tipo base para o qual existe um estilo nos dicionários 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. Isso só será prático se os modelos de controle do controle de base definirem totalmente a representação visual desse controle derivado e se quaisquer membros adicionais que os tipos derivados expõem não exigirem elementos adicionais como parte do modelo de controle.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.

Se você quiser que seu elemento ou controle deliberadamente não usar estilos de tema, defina a propriedade OverridesDefaultStyle como true.If you want your element or control to deliberately not use theme styles, set the OverridesDefaultStyle property to true.

Informações de Propriedade de DependênciaDependency Property Information

Campo de identificadorIdentifier field DefaultStyleKeyProperty
Propriedades de metadados definidas como trueMetadata properties set to true AffectsMeasure

Aplica-se a

Veja também