UIElement.Focusable Eigenschaft

Definition

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob das Element den Fokus erhalten kann. Hierbei handelt es sich um eine Abhängigkeitseigenschaft.

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

Boolean

true, wenn das Element den Fokus erhalten kann, andernfalls false. Der Standardwert ist false.

Implementiert

Beispiele

Der folgende Beispielcode veranschaulicht eine Steuerelementvorlage für ein bestimmtes benutzerdefiniertes Steuerelement, das auf eines der Elemente in der Vorlage festgelegt wird Focusablefalse .

<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.

Focusableist der Microsoft .NET-Eigenschaftsaccessor für die tatsächlich eine Abhängigkeitseigenschaft ist. Für diese bestimmte Abhängigkeitseigenschaft wird häufig der scheinbare Standardwert in abgeleiteten Elementklassen unterschiedlich festgelegt, insbesondere in Steuerelementen. Dies geschieht häufig auf eine von zwei Arten:

  • Die Abhängigkeitseigenschaft wird von einer bestimmten abgeleiteten Klasse geerbt, aber diese abgeleitete Klasse überschreibt die Metadaten der Abhängigkeitseigenschaft und ändert den Standardwert der Eigenschaft.

  • Eine Formatvorlage oder Vorlage wird auf ein Element angewendet, das den Wert der Abhängigkeitseigenschaft unterschiedlich festlegt.

Der scheinbare "Standard" von Focusable für ein Button Steuerelement ist truebeispielsweise , obwohl Button als CLR-Eigenschaft (Common Language Runtime) direkt von UIElementgeerbt Focusable wird. Dies liegt daran, dass der angewendete Metadatenwert für die Focusable Abhängigkeitseigenschaft innerhalb des statischen Konstruktors der Basisklasse überschrieben wurde, der Control sich zwischen Button und UIElement in der Klassenhierarchie befindet.

Wenn von Control oder den abgeleiteten Klassen geerbt wird, Control wird der Standardwert dieser Eigenschaft in trueneu definiert.

Wenn er von Label geerbt wird (bei der es sich um eine Control abgeleitete Klasse handelt), wird der Standardwert erneut so neu definiert, dass er lautet false.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld FocusableProperty
Metadateneigenschaften auf true festgelegt Keine

Hinweise für Vererber

Wenn Sie von UIElement direkt (im Gegensatz zu ) Controlabgeleitet werden, sollten Sie überlegen, ob Ihr Element fokussierbar sein soll, da das Element standardmäßig nicht fokussierbar ist. Wenn Das Element fokussierbar sein soll, überschreiben Sie die Metadaten für diese Eigenschaft im statischen Konstruktor Ihres Typs wie folgt:

FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));
FocusableProperty.OverrideMetadata(GetType(myElement), New UIPropertyMetadata(True))

Dabei myElement sollte der Klassenname des Typs sein, für den Sie den Metadatenwert überschreiben.

Gilt für

Siehe auch