控件获取焦点除了用鼠标外,可以通过键盘来获取,比如Tab键或者方向键等,需要设置控件获取键盘焦点时的样式,可以通过设置FrameworkElemnt.FocusVisualStyle属性,因为几乎所有常用的控件都继承了FrameworkElement,所以绝大部分控件都拥有该属性。
<Window x:Class="FocusVisualStyleDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<!--将获取焦点的样式设置为红色边框-->
<Style x:Key="newFocusStyle">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="-2" StrokeThickness="1" Stroke="Red"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Button Margin="122.275,36.227,139.525,217.173" />
<Button Margin="122.275,127.2,139.525,126.2" FocusVisualStyle="{DynamicResource newFocusStyle}"/>
<Button Margin="97.919,209.328,106.481,32.872" FocusVisualStyle="{x:Null}"/>
</Grid>
</Window>