FrameworkElement.DefaultStyleKey Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 |