UIElement.Focusable Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.