Freigeben über


Gewusst wie: Anwenden eines FocusVisualStyle auf ein Steuerelement

Dieses Beispiel veranschaulicht, wie ein Stil für den visuellen Fokus im Allgemeinen erstellt und über die FocusVisualStyle-Eigenschaft auf ein Steuerelement angewendet wird.

Beispiel

Das folgende Beispiel definiert einen Stil zum Erstellen einer zusätzlichen Zusammensetzung von Steuerelementen, wenn das entsprechende Steuerelement in der user interface (UI) den Tastaturfokus erhält. Dies wird erreicht, indem ein Stil mit einer ControlTemplate definiert wird und dieser Stil anschließend beim Festlegen der FocusVisualStyle-Eigenschaft als Ressource referenziert wird.

Ein externes Rechteck, das einem Rahmen ähnelt, wird außerhalb des rechteckigen Bereichs platziert. Sofern nicht anderweitig modifiziert, werden für die Größenfestlegung des Stils die ActualHeight und die ActualWidth des rechteckigen Steuerelements verwendet, auf das der Stil für den visuellen Fokus angewendet wird. In diesem Beispiel werden negative Werte für den Margin festgelegt, damit der Rahmen etwas außerhalb des fokussierten Steuerelements dargestellt wird.

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

Ein FocusVisualStyle wirkt additiv zu jedem Vorlagenstil für Steuerelemente, der aus einem expliziten Stil oder einem Designstil stammt. Der primäre Stil für ein Steuerelement kann weiterhin über eine ControlTemplate und das Festlegen dieses Stils für die Style-Eigenschaft erstellt werden.

Stile für den visuellen Fokus sollten konsistent in einem Design oder einer Benutzeroberfläche verwendet werden. Es empfiehlt sich nicht, verschiedene Stile für jedes fokussierbare Element zu verwenden. Ausführlichere Informationen hierzu finden Sie unter Fokusstile in Steuerelementen und FocusVisualStyle.

Siehe auch

Referenz

FocusVisualStyle

Konzepte

Erstellen von Formaten und Vorlagen

Fokusstile in Steuerelementen und FocusVisualStyle