UIElement.Focusable Propriedade

Definição

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

Boolean

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.

Aplica-se a

Confira também