UIElement.Focusable Propriedade

Definição

Obtém ou define um valor que indica se um elemento pode receber foco.Gets or sets a value that indicates whether the element can receive focus. É uma propriedade de dependência.This is a dependency property.

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.true if the element is focusable; otherwise false. O padrão é false.The default is 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 em um dos elementos dentro do modelo.The following example code illustrates a control template for a particular custom control, which sets Focusable false on one of the elements within the template.

<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 focalizado recebe entrada de teclado.Only the focused element receives keyboard input.

Focusable é o acessador de propriedade Microsoft .NETMicrosoft .NET para o que, na realidade, é uma propriedade de dependência.Focusable is the Microsoft .NETMicrosoft .NET property accessor for what is in reality a dependency property. Essa propriedade de dependência específica com frequência tem seu valor aparente "padrão" definido de forma diferente em classes de elementos derivados, particularmente em controles.This particular dependency property quite frequently has its apparent "default" value set differently in derived element classes, particularly in controls. Isso normalmente ocorre em uma das duas maneiras:This commonly occurs in one of two ways:

  • 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.The dependency property is inherited by a particular derived class, but that derived class overrides the metadata of the dependency property and changes the property default value.

  • Um estilo ou modelo é aplicado a um elemento, que define o valor da propriedade de dependência de forma diferente.A style or template is applied to an element, which sets that dependency property value differently.

Por exemplo, o "padrão" aparente de Focusable para um controle de Button será true, embora Button herde Focusable como uma propriedade CLR (Common Language Runtime)common language runtime (CLR) diretamente do UIElement.For example, the apparent "default" of Focusable for a Button control will be true, even though Button inherits Focusable as a CLR (Common Language Runtime)common language runtime (CLR) property directly from UIElement. Isso ocorre porque o valor de metadados aplicado para a propriedade de dependência Focusable foi substituído no construtor estático da classe base Control, que está situada entre Button e UIElement na hierarquia de classes.This is because the applied metadata value for the Focusable dependency property was overridden within the static constructor of the Control base class, which is situated between Button and UIElement in the class hierarchy.

Quando herdado por Control ou suas classes derivadas, Control redefine o valor padrão dessa propriedade como true.When inherited by Control or its derived classes, Control redefines the default value of this property to be true.

Quando herdado por Label (que é uma classe derivada Control), o valor padrão é redefinido novamente para ser false.When inherited by Label (which is a Control derived class), the default value is again redefined to be false.

Informações de Propriedade de DependênciaDependency Property Information

Campo de identificadorIdentifier field FocusableProperty
Propriedades de metadados definidas como trueMetadata properties set to true NenhumNone

Notas aos Herdeiros

Ao derivar de UIElement diretamente (em oposição a de Control), considere se você deseja que seu elemento seja focado, porque por padrão o elemento não será focado.When deriving from UIElement directly (as opposed to from Control), consider whether you wish your element to be focusable, because by default the element will not be focusable. Se você quiser que seu elemento esteja em foco, substitua os metadados dessa propriedade no construtor estático do tipo, da seguinte maneira:If you wish your element to be focusable, override the metadata for this property within your type's static constructor as follows: [! Code-CsharpCorePseudocode # UIElementShortOverride] [! Code-VBCorePseudocode # UIElementShortOverride][!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride] em que myElement deve ser o nome da classe do tipo no qual você está substituindo o valor dos metadados.where myElement should be the class name of the type that you are overriding the metadata value on.

Aplica-se a

Veja também