Partager via


Comment : appliquer un FocusVisualStyle à un contrôle

Mise à jour : novembre 2007

Cet exemple vous montre comment créer un style visuel de focus dans les ressources et appliquer le style à un contrôle, à l'aide de la propriété FocusVisualStyle.

Exemple

L'exemple suivant définit un style qui crée une composition de contrôle supplémentaire qui s'applique uniquement lorsque ce contrôle porte sur le clavier dans l'interface utilisateur (UI). Cela est accompli en définissant un style avec un ControlTemplate, puis en référençant ce style comme une ressource lors de la définition de la propriété FocusVisualStyle.

Un rectangle externe ressemblant à une bordure est placé à l'extérieur de la zone rectangulaire. À défaut de modification différente, le dimensionnement du style utilise le ActualHeight et le ActualWidth du contrôle rectangulaire où le style visuel de focus est appliqué. Cet exemple définit des valeurs négatives pour le Margin pour que la bordure apparaisse légèrement à l'extérieur du contrôle ayant le focus.

<Page
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
>
  <Page.Resources>
    <Style x:Key="MyFocusVisual">
      <Setter Property="Control.Template">
        <Setter.Value>
          <ControlTemplate>
            <Rectangle Margin="-2" StrokeThickness="1" Stroke="Red" StrokeDashArray="1 2"/>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </Page.Resources>
  <StackPanel Background="Ivory" Orientation="Horizontal">
    <Canvas Width="10"/>
    <Button Width="100" Height="30" FocusVisualStyle="{DynamicResource MyFocusVisual}">
      Focus Here</Button>
    <Canvas Width="100"/>
    <Button Width="100" Height="30" FocusVisualStyle="{DynamicResource MyFocusVisual}">
      Focus Here</Button>
  </StackPanel>
</Page>

Pour l'exemple complet, consultez Création d'un FocusVisualStyle, exemple.

Un FocusVisualStyle est additif pour tout style de modèle de contrôle provenant d'un style explicite ou d'un style de thème ; le style principal pour un contrôle peut encore être créé en utilisant un ControlTemplate et en définissant ce style selon la propriété Style.

Les styles visuels de focus doivent être utilisés régulièrement à travers un thème ou une interface utilisateur, plutôt que d'utiliser un style différent pour chaque élément pouvant être actif. Pour plus d'informations, consultez FocusVisualStyle et application d'un style au focus dans les contrôles.

Voir aussi

Concepts

Application d'un style et création de modèles

FocusVisualStyle et application d'un style au focus dans les contrôles

Référence

FocusVisualStyle