Freigeben über


Vorgehensweise: Anwenden eines FocusVisualStyle auf ein Steuerelement

In diesem Beispiel wird gezeigt, wie Sie einen visuellen Fokusstil in Ressourcen erstellen und den Stil mithilfe der Eigenschaft FocusVisualStyle auf ein Steuerelement anwenden.

Beispiel

Im folgenden Beispiel wird eine Formatvorlage definiert, die zusätzliche Steuerelementzusammenstellung erstellt, die nur angewendet wird, wenn das Steuerelement tastaturfokussiert ist. Dies wird durch Definieren einer Formatvorlage mit einem ControlTemplateUnd dann durch Verweisen auf diese Formatvorlage als Ressource beim Festlegen der FocusVisualStyle Eigenschaft erreicht.

Ein externes Rechteck, das einem Rahmen ähnelt, wird außerhalb des rechteckigen Bereichs platziert. Sofern nicht anders geändert, verwendet die Größenanpassung der Formatvorlage das ActualHeightActualWidth rechteckige Steuerelement, auf das die visuelle Fokusformatvorlage angewendet wird. In diesem Beispiel werden negative Werte für Margin festgelegt, damit der Rahmen etwas außerhalb des fokussierten Steuerelements angezeigt wird.

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

Ein FocusVisualStyle ist additiv zu jedem Steuerelementstil, der entweder aus einem expliziten Stil oder einem Designstil stammt; der primäre Stil für ein Steuerelement kann weiterhin mithilfe eines ControlTemplate erstellt und durch Festlegung dieses Stils auf die Style-Eigenschaft festgelegt werden.

Visuelle Fokus-Stile sollten konsistent in einem Design oder einer Benutzeroberfläche verwendet werden, anstatt für jedes fokussierbare Element unterschiedliche Stile zu verwenden. Ausführliche Informationen finden Sie unter "Formatieren für Fokus in Steuerelementen" und "FocusVisualStyle".

Siehe auch