我有一些主要是组合框,文本框和复选框的窗口.当你点击一个来获得焦点时,我需要一种方法来用彩色盒子(老板的命令)勾画它们.有没有办法比覆盖所有这些控件的默认样式更容易?我以前从来没有这样做过,所以我需要花很多时间来解决这个问题.
您可以尝试将FocusVisualStyle添加到需要不同焦点矩形样式的控件.
从上面的链接
第二种机制是提供一个单独的样式作为FocusVisualStyle属性的值; "焦点视觉样式"为绘制在控件之上的装饰器创建单独的可视树,而不是通过替换它来更改控件或其他UI元素的可视树.
在你的Window的Xaml中有这样的东西
<Window.Resources>
<Style x:Key="NewFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Rectangle Stroke="Red" Margin="2" StrokeThickness="1" StrokeDashArray="1 2" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
或您的Application.Xaml文件.
<Application.Resources>
<Style x:Key="NewFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Rectangle Stroke="Red" Margin="2" StrokeThickness="1" StrokeDashArray="1 2" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
用法:
<ComboBox FocusVisualStyle="{StaticResource NewFocusVisual}" Height="23" HorizontalAlignment="Left" Margin="238,102,0,0" Name="ComboBox1" VerticalAlignment="Top" Width="120" />
<CheckBox FocusVisualStyle="{StaticResource NewFocusVisual}" Content="CheckBox" Height="16" HorizontalAlignment="Left" Margin="238,71,0,0" Name="CheckBox2" VerticalAlignment="Top" />
<TextBox FocusVisualStyle="{StaticResource NewFocusVisual}" Height="23" HorizontalAlignment="Left" Margin="238,144,0,0" Name="TextBox1" VerticalAlignment="Top" Width="120" />
Run Code Online (Sandbox Code Playgroud)
如果您希望为每种类型的焦点事件更改焦点矩形,Microsoft声明:
来自Microsoft:Focus视觉样式专门用于键盘焦点.因此,焦点视觉样式是一种可访问性功能.如果您希望通过鼠标,键盘或编程方式对任何类型的焦点进行UI更改,则不应使用焦点视觉样式,而应在使用常规焦点属性值的样式或模板中使用setter和触发器例如IsFocused或IsFocusWithin.
给它一个它适用于TextBox的镜头还没有检查你的其他控件
<Application.Resources>
<Style TargetType="TextBox" >
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Control.BorderBrush" Value="Red" />
<Setter Property="Control.BorderThickness" Value="3" />
</Trigger>
</Style.Triggers>
</Style>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
476 次 |
| 最近记录: |