我正在使用样式表的WPF。在我的Style
中,我一直在尝试为CheckBox
自定义虚线焦点边框的外观。我需要聚焦边框只能在广场周围绘制而不是整个控件。
我将样式宽度设置为15,虚线边框是正确的,但不包围正方形,它偏向一边。
我已经包含了这种风格。
感谢您的帮助。
样式表片段:
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle StrokeThickness="1" Stroke="Black" StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/>
</ControlTemplate>
</Setter.Value>
</Setter>
答案 0 :(得分:1)
没有太大变化,但我觉得它看起来不错
<Style x:Key="MyFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle StrokeThickness="1" Margin="-1,1,-1,1" Stroke="Black" HorizontalAlignment="Left" StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Canvas>
<CheckBox Canvas.Left="100" Canvas.Top="100" TabIndex="0" Content="Content1" FocusVisualStyle="{DynamicResource MyFocusVisual}"/>
<CheckBox Canvas.Left="100" Canvas.Top="120" TabIndex="1" Content="Content2" FocusVisualStyle="{DynamicResource MyFocusVisual}"/>
</Canvas>
答案 1 :(得分:0)
使用Blend或XAMLWriter使用techniques shown here中的一个来获取CheckBox的ControlTemplate。
查看“square”的定义方式和位置 - 我相信你会看到它有一个边距和/或填充和/或其他格式。
此时,您可以使用该信息来实现您的Style。从你的代码片段中不清楚你是否真的实现了CheckBox的ControlTemplate,但这可能是最简单的。
哦,还有FYI - 在WPF中,它们被称为ResourceDictionaries,而不是样式表。