Jak zastosować FocusVisualStyle do formantu

W tym przykładzie pokazano, jak utworzyć styl wizualizacji fokusu w zasobach i zastosować styl do kontrolki FocusVisualStyle przy użyciu właściwości .

Przykład

W poniższym przykładzie zdefiniowano styl, który tworzy dodatkowe komponowanie kontrolek, które ma zastosowanie tylko wtedy, gdy ta kontrolka jest skoncentrowana na klawiaturze w interfejsie użytkownika. Jest to realizowane przez zdefiniowanie stylu za ControlTemplatepomocą klasy , a następnie odwoływanie się do tego stylu jako zasobu podczas ustawiania FocusVisualStyle właściwości.

Zewnętrzny prostokąt przypominający obramowanie znajduje się poza prostokątnym obszarem. O ile nie zmodyfikowano inaczej, rozmiar stylu używa ActualHeight kontrolki i ActualWidth prostokątnej kontrolki, w której zastosowano styl wizualizacji fokusu. W tym przykładzie ustawiono wartości ujemne, Margin aby obramowanie było wyświetlane nieco poza fokusem.

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

Element FocusVisualStyle jest dodatkiem do dowolnego stylu szablonu kontrolki, który pochodzi z jawnego stylu lub stylu motywu. Styl podstawowy kontrolki można nadal tworzyć przy użyciu ControlTemplate kontrolki i ustawiając ten styl na Style właściwość .

Style wizualizacji fokusu powinny być używane spójnie w obrębie motywu lub interfejsu użytkownika, zamiast używać innego dla każdego elementu z możliwością koncentracji uwagi. Aby uzyskać szczegółowe informacje, zobacz Stylowanie fokusu w kontrolkach i FocusVisualStyle.

Zobacz też