UIElement.Focusable 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 um valor que indica se um elemento pode receber foco. É uma propriedade de dependência.
public:
property bool Focusable { bool get(); void set(bool value); };
public bool Focusable { get; set; }
member this.Focusable : bool with get, set
Public Property Focusable As Boolean
Valor da propriedade
true
se o elemento for focalizável; caso contrário, false
. O padrão é false
.
Implementações
Exemplos
O código de exemplo a seguir ilustra um modelo de controle para um controle personalizado específico, que define Focusable false
um dos elementos dentro do modelo.
<Window.Resources>
<Style x:Key="TextBoxNoScrollViewer" TargetType="{x:Type TextBoxBase}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<Border
CornerRadius="2"
Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
>
<!--
The control template for a TextBox or RichTextBox must
include an element tagged as the content host. An element is
tagged as the content host element when it has the special name
PART_ContentHost. The content host element must be a ScrollViewer,
or an element that derives from Decorator.
-->
<AdornerDecorator
x:Name="PART_ContentHost"
Focusable="False"
/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
Comentários
Somente o elemento focado recebe entrada de teclado.
Focusable é o acessador de propriedades do Microsoft .NET para o que é, na realidade, uma propriedade de dependência. Essa propriedade de dependência específica frequentemente tem seu valor "padrão" aparente definido de forma diferente em classes de elementos derivados, particularmente em controles. Isso geralmente ocorre de duas maneiras:
A propriedade de dependência é herdada por uma classe derivada específica, mas essa classe derivada substitui os metadados da propriedade de dependência e altera o valor padrão da propriedade.
Um estilo ou modelo é aplicado a um elemento, que define esse valor de propriedade de dependência de forma diferente.
Por exemplo, o aparente "padrão" de Focusable um Button controle será true
, embora Button herde Focusable como uma propriedade CLR (Common Language Runtime) diretamente de UIElement. Isso ocorre porque o valor de metadados aplicados para a Focusable propriedade de dependência foi substituído dentro do construtor estático da Control classe base, que está situado entre Button e UIElement na hierarquia de classe.
Quando herdado por Control ou suas classes derivadas, Control redefine o valor padrão dessa propriedade para ser true
.
Quando herdado por Label (que é uma Control classe derivada), o valor padrão é redefinido novamente para ser false
.
Informações da propriedade de dependência
Campo Identificador | FocusableProperty |
Propriedades de metadados definidas como true |
Nenhum |
Notas aos Herdeiros
Ao derivar diretamente UIElement (em vez de de Control), considere se deseja que seu elemento seja focalizável, pois, por padrão, o elemento não será focalizável. Se desejar que o elemento seja focalizável, substitua os metadados dessa propriedade no construtor estático do seu tipo da seguinte maneira:
onde myElement
deve ser o nome da classe do tipo no qual você está substituindo o valor dos metadados.