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.

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. Para funcionar corretamente como parte da pesquisa de estilo do tema, espera-se que esse valor seja o Type do controle com estilo.

Exemplos

O exemplo a seguir ilustra o uso de substituição de metadados da propriedade de dependência discutido em Comentários. Esse código define uma classe NumericUpDown de controle personalizada destinada a ser usada de um assembly de biblioteca de controle dedicado. 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 Marcando eventos roteados como manipulados e manipulação de classe) e, por fim, substitui os metadados da DefaultStyleKey propriedade de dependência na NumericUpDown classe . 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 para algum controle arbitrário sem 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

O código-fonte completo para este exemplo está disponível para o Visual Basic.

Comentários

Normalmente, essa propriedade não é definida por meio de nenhum de seus acessadores de propriedade direta. Em vez disso, você substitui os metadados específicos do tipo dessa propriedade de dependência sempre que cria uma nova FrameworkElement classe derivada. Quando você derivar um controle, chame o OverrideMetadata método em relação ao DefaultStyleKeyProperty identificador, dentro do construtor estático da classe derivada de controle (ou inicialização de classe equivalente).

Um controle normalmente substitui o valor padrão dessa propriedade como seu próprio tipo, mas em alguns casos também pode usar um tipo base para o qual existe um estilo nos dicionários de tema. Isso só será prático se os modelos de controle do controle base definirem inteiramente a representação visual desse controle derivado e se quaisquer membros adicionais expostos pelos tipos derivados não exigirem elementos adicionais como parte do modelo de controle.

Se você quiser que seu elemento ou controle não use deliberadamente estilos de tema, defina a OverridesDefaultStyle propriedade como true.

Informações da propriedade de dependência

Campo Identificador DefaultStyleKeyProperty
Propriedades de metadados definidas como true AffectsMeasure

Aplica-se a

Confira também