Udostępnij przez


Jak: zastosować FocusVisualStyle do kontrolki

W tym przykładzie pokazano, jak utworzyć styl fokusu w zasobach i zastosować ten styl do kontrolki, używając właściwości FocusVisualStyle.

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 pomocą ControlTemplate, a następnie odwoływanie się do tego stylu jako zasobu podczas ustawiania właściwości FocusVisualStyle.

Zewnętrzny prostokąt przypominający obramowanie znajduje się poza prostokątnym obszarem. Jeśli nie zostało inaczej zmodyfikowane, rozmiar stylu korzysta z ActualHeight i ActualWidth prostokątnej kontrolki, na której stosowany jest styl wizualizacji fokusu. W tym przykładzie ustawiono wartości ujemne dla 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>

FocusVisualStyle jest dodatkiem do dowolnego stylu szablonu kontrolki, pochodzącego z jawnego stylu lub stylu motywu; styl podstawowy kontrolki można nadal utworzyć przez użycie ControlTemplate i przypisanie tego stylu do właściwości Style.

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 także