UIElement.Focusable Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy element może odbierać fokus. Jest to właściwość zależności.

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

Wartość właściwości

true jeśli element jest fokusem; w przeciwnym razie false. Wartość domyślna to false.

Implementuje

Przykłady

Poniższy przykładowy kod ilustruje szablon kontrolki dla określonej kontrolki niestandardowej, która ustawia Focusablefalse jeden z elementów w szablonie.

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

Uwagi

Tylko element skoncentrowany odbiera dane wejściowe klawiatury.

Focusablejest akcesorem właściwości Microsoft .NET dla tego, co jest w rzeczywistości właściwością zależności. Ta konkretna właściwość zależności dość często ma widoczną wartość "domyślną" ustawioną inaczej w klasach elementów pochodnych, szczególnie w kontrolkach. Często występuje to na jeden z dwóch sposobów:

  • Właściwość zależności jest dziedziczona przez określoną klasę pochodną, ale ta klasa pochodna zastępuje metadane właściwości zależności i zmienia wartość domyślną właściwości.

  • Styl lub szablon jest stosowany do elementu, który ustawia inną wartość właściwości zależności.

Na przykład widoczna wartość "domyślna" dla Button kontrolki to true, mimo że Button dziedziczy Focusable jako właściwość środowiska uruchomieniowego języka wspólnego (CLR) bezpośrednio z UIElement.Focusable Wynika to z faktu, że zastosowana wartość metadanych dla Focusable właściwości zależności została zastąpiona w konstruktorze Control statycznym klasy bazowej, która znajduje się między Button i UIElement w hierarchii klas.

Po dziedziczeniu przez Control klasy Control pochodne lub klasy pochodne ponownie definiuje domyślną wartość tej właściwości na true.

Po dziedziczeniu przez Label (która jest klasą pochodną Control ), wartość domyślna jest ponownie ponownie definiowana jako false.

Informacje dotyczące właściwości zależności

Pole identyfikatora FocusableProperty
Właściwości metadanych ustawione na true Brak

Uwagi dotyczące dziedziczenia

Podczas wyprowadzania bezpośrednio UIElement (w przeciwieństwie do wartości z Control), należy rozważyć, czy element ma być fokusowy, ponieważ domyślnie element nie będzie można skupić się na fokusie. Jeśli chcesz, aby element był możliwy do koncentracji uwagi, przesłoń metadane tej właściwości w konstruktorze statycznym typu w następujący sposób:

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

gdzie myElement powinna być nazwą klasy typu, na którym zastępujesz wartość metadanych.

Dotyczy

Zobacz też