UIElement.Focusable Propriété

Définition

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

myElement doit être le nom de classe du type sur lequel vous substituez la valeur de métadonnées.

S’applique à

Voir aussi