Udostępnij za pośrednictwem


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 fokusowy; 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 na jednym 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 ukierunkowany odbiera dane wejściowe klawiatury.

Focusable jest 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 ma dość często 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 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" Focusable dla kontrolki Button będzie true, mimo że Button dziedziczy Focusable jako właściwość środowiska uruchomieniowego języka wspólnego (CLR) bezpośrednio z UIElement. Wynika to z faktu, że zastosowana wartość metadanych dla właściwości zależności Focusable została zastąpiona w konstruktorze statycznym klasy bazowej Control, która znajduje się między Button i UIElement w hierarchii klas.

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

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

Informacje o właściwości zależności

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

Uwagi dotyczące dziedziczenia

Podczas wyprowadzania z UIElement bezpośrednio (w przeciwieństwie do Control), należy rozważyć, czy element ma być fokusowy, ponieważ domyślnie element nie będzie można fokusować. 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, dla którego zastępujesz wartość metadanych.

Dotyczy

Zobacz też