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 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 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" dla kontrolki Focusable to Button, mimo że true dziedziczy Button jako właściwość środowiska uruchomieniowego języka wspólnego (CLR) bezpośrednio z Focusableklasy .UIElement 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 pochodne lub jej klasy Control 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 zostanie ponownie ponownie zdefiniowana na falsewartość .
Informacje o właściwości zależności
| Przedmiot | Wartość |
|---|---|
| Pole identyfikatora | FocusableProperty |
Właściwości metadanych ustawione na true |
Żadne |
Notatki dotyczące dziedziczenia
Podczas wyprowadzania bezpośrednio UIElement (w przeciwieństwie do Controlelementu ) 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))
myElement powinna być nazwą klasy typu, dla którego zastępujesz wartość metadanych.