Show / Hide Table of Contents

Практическое руководство. Применение стиля визуального отображения фокуса к элементу управления

В этом примере показано, как создать визуальный стиль фокуса в ресурсах и применить стиль к элементу управления с помощью FocusVisualStyle свойство.

Пример

В следующем примере определяется стиль, который создает дополнительный контроль композиции, который применяется, только если этот элемент управления получает фокус от клавиатуры в UI . Это достигается путем определения стиля с ControlTemplate, то ссылки на этот стиль как ресурс, при задании FocusVisualStyle свойство.

Внешний прямоугольник, сходный с границей помещается за пределами прямоугольной области. В противном случае изменение размера стиля использует ActualHeight и ActualWidth прямоугольного элемента управления, где применяется визуальный стиль фокуса. В этом примере задает отрицательные значения для Margin чтобы сделать границу немного находиться за пределами элемента управления с фокусом.

<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 является дополнением к любой стиль шаблона элемента управления, поступающие из явного стиля или стиля темы; основной стиль для элемента управления можно по-прежнему создаваться с помощью ControlTemplate и установив для этого стиля Style свойство.

Фокус, визуальные стили должен последовательно использоваться между тем и пользовательский Интерфейс, вместо того чтобы использовать его для каждого элемента, способному получать фокус. Дополнительные сведения см. в разделе Стилизация фокуса в элементах управления и FocusVisualStyle.

См. также

  • FocusVisualStyle
  • Стилизация и использование шаблонов
  • Стилизация фокуса в элементах управления и FocusVisualStyle
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX