Condividi tramite


Procedura: Applicare un FocusVisualStyle a un controllo

In questo esempio viene illustrato come creare uno stile di messa a fuoco nelle risorse e applicare lo stile a un controllo usando la proprietà FocusVisualStyle.

Esempio

Nell'esempio seguente viene definito uno stile che crea una composizione di controlli aggiuntiva che si applica solo quando il controllo è incentrato sulla tastiera nell'interfaccia utente. Questa operazione viene eseguita definendo uno stile con un ControlTemplate, quindi facendo riferimento a tale stile come risorsa quando si imposta la proprietà FocusVisualStyle.

Un rettangolo esterno simile a un bordo viene posizionato all'esterno dell'area rettangolare. Se non diversamente modificato, la dimensione dello stile utilizza il ActualHeight e il ActualWidth del controllo rettangolare in cui viene applicato lo stile di visualizzazione dello stato attivo. In questo esempio vengono impostati valori negativi per Margin affinché il bordo venga visualizzato leggermente all'esterno del controllo attivo.

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://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>

Un FocusVisualStyle si aggiunge a qualsiasi stile di modello di controllo che proviene da uno stile esplicito o da uno stile del tema. Inoltre, è comunque possibile creare lo stile principale per un controllo utilizzando un ControlTemplate e impostare tale stile alla proprietà Style.

Gli stili di visualizzazione del focus devono essere usati in modo coerente in un tema o in un'interfaccia utente, invece di usarne uno diverso per ogni elemento focalizzabile. Per informazioni dettagliate, vedere stili per lo stato attivo nei controlli e FocusVisualStyle.

Vedere anche