Compartilhar via


FrameworkElement.DefaultStyleKey Propriedade

Definição

Obtém ou define a chave a ser usada para fazer referência ao estilo desse 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 de tema, espera-se que esse valor seja o Type controle que está sendo estilizado.

Exemplos

O exemplo a seguir ilustra o uso de substituição de metadados de 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 DefaultStyleKey metadados da 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 deste exemplo está disponível para o Visual Basic.

Comentários

Essa propriedade normalmente 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ê deriva um controle, chame o OverrideMetadata método no DefaultStyleKeyProperty identificador, dentro do construtor estático da classe derivada do controle (ou inicialização de classe equivalente).

Um controle normalmente substitui o valor padrão dessa propriedade para ser 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 totalmente 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 Dependency

Item Valor
Campo identificador DefaultStyleKeyProperty
Propriedades de metadados definidas como true AffectsMeasure

Aplica-se a

Confira também