Focusable Propriété
Réduire la table des matières
Développer la table des matières
Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Propriété UIElement.Focusable

 

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.

Espace de noms:   System.Windows
Assembly:  PresentationCore (dans PresentationCore.dll)

public bool Focusable { get; set; }

Valeur de propriété

Type: System.Boolean

true si l’élément peut être actif ; sinon, false. La valeur par défaut est false, mais consultez la section Notes.

Seul l'élément ayant le focus reçoit l'entrée au clavier.

Focusable est le Microsoft .NET accesseur de propriété pour ce qui est en réalité une propriété de dépendance. Cette propriété de dépendance particulière a fréquemment sa valeur « par défaut » apparente définie différemment dans la classe d'éléments dérivés, en particulier dans les contrôles. Cela se produit habituellement de deux façons :

  • La propriété de dépendance est héritée par une classe dérivée particulière, mais qui classe dérivée substitue les métadonnées de la propriété de dépendance et change la valeur par défaut de propriété.

  • Un style ou modèle est appliqué à un élément, qui définit cette valeur de propriété de dépendance différemment.

Par exemple, apparente « défaut » de Focusable pour un Button contrôle sera true, même si Button hérite Focusable comme un Common Language Runtime (CLR) propriété directement à partir de UIElement. C'est parce que la valeur de la métadonnée appliquée pour la Focusable propriété de dépendance a été substituée dans le constructeur statique de la Control classe de base, qui se situe entre Button et UIElement dans la hiérarchie de classes.

Cas d'héritage par Control ou ses classes dérivées, Control redéfinit la valeur par défaut de cette propriété doit être true.

Cas d'héritage par Label (qui est un Control classe dérivée), la valeur par défaut est encore redéfinie false.

Champ d'identificateur

FocusableProperty

La valeur des propriétés de métadonnées true

None

Remarques à l'attention des héritiers :

Lorsque vous dérivez de UIElement directement (et non à partir de Control), prévoyez d'indiquer si votre élément soit actif, car l'élément ne le n'est pas par défaut. Si vous souhaitez que votre élément soit actif, substituez les métadonnées pour cette propriété dans le constructeur statique de votre type comme suit :

FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));

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

L'exemple de code suivant illustre un modèle de contrôle pour un contrôle personnalisé en particulier, qui définit Focusable false sur un des éléments dans le 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>

.NET Framework
Disponible depuis 3.0
Retour au début
Afficher:
© 2016 Microsoft