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