UIElement.Focusable Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique si l’élément peut recevoir le focus. Il s’agit d’une propriété de dépendance.
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
Valeur de propriété
true
si l’élément est focusable ; sinon, false
. La valeur par défaut est false
.
Implémente
Exemples
L’exemple de code suivant illustre un modèle de contrôle pour un contrôle personnalisé particulier, qui définit Focusablefalse
sur l’un des éléments du modèle.
<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>
Remarques
Seul l’élément prioritaire reçoit l’entrée du clavier.
Focusable est l’accesseur de propriété Microsoft .NET pour ce qui est en réalité une propriété de dépendance. Cette propriété de dépendance particulière a souvent sa valeur « par défaut » apparente définie différemment dans les classes d’éléments dérivées, en particulier dans les contrôles. Cela se produit généralement de deux façons :
La propriété de dépendance est héritée par une classe dérivée particulière, mais cette classe dérivée remplace les métadonnées de la propriété de dépendance et modifie la valeur par défaut de la propriété.
Un style ou un modèle est appliqué à un élément, qui définit cette valeur de propriété de dépendance différemment.
Par exemple, la « valeur par défaut » apparente de Focusable pour un contrôle Button sera true
, même si Button hérite Focusable en tant que propriété CLR (Common Language Runtime) directement à partir de UIElement. Cela est dû au fait que la valeur de métadonnées appliquée pour la propriété de dépendance Focusable a été remplacée dans le constructeur statique de la classe de base Control, qui est située entre Button et UIElement dans la hiérarchie de classes.
En cas d’héritage par Control ou ses classes dérivées, Control redéfinit la valeur par défaut de cette propriété pour qu’elle soit true
.
Lorsqu’elle est héritée par Label (qui est une classe dérivée Control), la valeur par défaut est de nouveau redéfinie pour être false
.
Informations sur les propriétés de dépendance
Champ d’identificateur | FocusableProperty |
Propriétés de métadonnées définies sur true |
Aucun |
Notes pour les héritiers
Lors de la dérivation de UIElement directement (par opposition à celle de Control), déterminez si vous souhaitez que votre élément soit focusable, car par défaut, l’élément ne sera pas focusable. Si vous souhaitez que votre élément soit focusable, remplacez les métadonnées de cette propriété dans le constructeur statique de votre type comme suit :
FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));
FocusableProperty.OverrideMetadata(GetType(myElement), New UIPropertyMetadata(True))
où myElement
doit être le nom de classe du type sur lequel vous substituez la valeur de métadonnées.