UIElement.Focusable UIElement.Focusable UIElement.Focusable UIElement.Focusable Property

Definition

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob das Element den Fokus erhalten kann.Gets or sets a value that indicates whether the element can receive focus. Hierbei handelt es sich um eine Abhängigkeitseigenschaft.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

Eigenschaftswert

true, wenn das Element den Fokus erhalten kann, andernfalls false.true if the element is focusable; otherwise false. Die Standardeinstellung ist false.The default is false.

Implementiert

Beispiele

Der folgende Beispielcode veranschaulicht eine Steuerelement Vorlage für ein bestimmtes benutzerdefiniertes Steuer Focusable Element, das auf eines der Elemente in der Vorlage festlegt false .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>

Hinweise

Nur das fokussierte Element empfängt Tastatureingaben.Only the focused element receives keyboard input.

Focusableder Microsoft .NETMicrosoft .NET Eigenschaften Accessor für das, was in Wirklichkeit eine Abhängigkeits Eigenschaft ist.Focusable is the Microsoft .NETMicrosoft .NET property accessor for what is in reality a dependency property. Bei dieser speziellen Abhängigkeits Eigenschaft ist der sichtbare "Default"-Wert in abgeleiteten Element Klassen anders festgelegt, insbesondere in-Steuerelementen.This particular dependency property quite frequently has its apparent "default" value set differently in derived element classes, particularly in controls. Dies geschieht in der Regel auf zwei Arten:This commonly occurs in one of two ways:

  • Die Abhängigkeits Eigenschaft wird von einer bestimmten abgeleiteten Klasse geerbt, aber diese abgeleitete Klasse überschreibt die Metadaten der Abhängigkeits Eigenschaft und ändert den Standardwert der Eigenschaft.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.

  • Ein-Stil oder eine Vorlage wird auf ein-Element angewendet, das den Wert der Abhängigkeits Eigenschaft unterschiedlich festlegt.A style or template is applied to an element, which sets that dependency property value differently.

Beispielsweise ist der sichtbare "Standard" von Focusable für ein Button Steuer trueElement, Button obwohl er als Common Language Runtime (CLR)common language runtime (CLR) Eigenschaft direkt Focusable von UIElementerbt.For example, the apparent "default" of Focusable for a Button control will be true, even though Button inherits Focusable as a Common Language Runtime (CLR)common language runtime (CLR) property directly from UIElement. Dies liegt daran, dass der angewendete Focusable Metadatenwert für die Abhängigkeits Eigenschaft innerhalb des statischen Konstruktors Control der Basisklasse überschrieben wurde Button , UIElement der sich zwischen und in der Klassenhierarchie befindet.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.

Wenn Sie Control vonoderControl von den abgeleiteten Klassen geerbt werden, wird der Standardwert dieser Eigenschaft neu definiert als. trueWhen inherited by Control or its derived classes, Control redefines the default value of this property to be true.

Bei der Vererbung durch Label (bei der es sich um eine Control abgeleitete Klasse handelt) falsewird der Standardwert wieder neu definiert, sodass er istWhen inherited by Label (which is a Control derived class), the default value is again redefined to be false.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

BezeichnerfeldIdentifier field FocusableProperty
Metadateneigenschaften auf true festgelegtMetadata properties set to true KeineNone

Hinweise für Vererber

Wenn Sie von UIElement direkt ableiten (im Gegensatz zu Controlfrom), sollten Sie überprüfen, ob das Element in den Fokus gesetzt werden kann, da das Element standardmäßig nicht für die Fokus verwendet werden kann.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. Wenn Sie möchten, dass das Element als Fokus verwendet werden kann, überschreiben Sie die Metadaten für diese Eigenschaft im statischen Konstruktor des Typs wie folgt:If you wish your element to be focusable, override the metadata for this property within your type's static constructor as follows: [! Code-csharpcorepseudocode # uielementshordeverride] [! Code-vbcorepseudocode # uielementshordeverride][!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride] dabei myElement sollte der Klassenname des Typs sein, für den Sie den Metadatenwert überschreiben.where myElement should be the class name of the type that you are overriding the metadata value on.

Gilt für:

Siehe auch