UIElement.Focusable Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe ou define um valor que indica se o elemento pode receber foco. Isto é 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 de Propriedade
true se o elemento for focável; caso contrário false. A predefinição é false.
Implementações
Exemplos
O seguinte código de exemplo ilustra um modelo de controlo para um determinado controlo personalizado, que se estabelece Focusablefalse num 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>
Observações
Apenas o elemento focado recebe a entrada do teclado.
Focusable é o acesso à propriedade Microsoft .NET para o que na realidade é uma propriedade de dependência. Esta propriedade de dependência em particular tem frequentemente o seu aparente valor "padrão" definido de forma diferente nas classes de elementos derivadas, particularmente nos controlos. Isto ocorre frequentemente de duas formas:
- A propriedade de dependência é herdada por uma determinada classe derivada, mas essa classe derivada sobrepõe-se aos metadados da propriedade de dependência e altera o valor padrão da propriedade.
- Um estilo ou modelo é aplicado a um elemento, que define o valor dessa propriedade de dependência de forma diferente.
Por exemplo, o aparente "padrão" de para um Focusable controlo será Button, mesmo que true herde Button como propriedade de tempo de execução de linguagem comum (CLR) diretamente de Focusable.UIElement Isto deve-se ao facto de o valor de metadados aplicado para a Focusable propriedade de dependência ter sido sobreposto dentro do construtor estático da Control classe base, que está situada entre Button e UIElement na hierarquia de classes.
Quando herdado por Control ou as suas classes derivadas, Control redefine o valor padrão desta propriedade para ser true.
Quando herdado por Label (que é uma Control classe derivada), o valor padrão é novamente redefinido para ser false.
Informação de Propriedade de Dependência
| Iteme | Value |
|---|---|
| Campo identificador | FocusableProperty |
Propriedades dos metadados definidas como true |
None |
Notas para Herdeiros
Ao derivar de UIElement diretamente (em vez de ), Controlconsidere se deseja que o seu elemento seja focável, porque por defeito o elemento não será focalizável. Se quiser que o seu elemento seja focável, sobrepone os metadados desta propriedade dentro do construtor estático do seu tipo da seguinte forma:
FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));
FocusableProperty.OverrideMetadata(GetType(myElement), New UIPropertyMetadata(True))
myElement Deve ser o nome da classe do tipo sobre o qual estás a sobrescrever o valor dos metadados.