我正试图摆脱我按钮周围的白色边框。我正在向Button
添加图片。它似乎不是按钮本身,而是图像的边界。
这是XAML,
<Style x:Key="MyButton" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border" BorderThickness="0" Background="{TemplateBinding Background}" CornerRadius="5" >
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.5" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Button
自己,
<Button Name="Button2" Content="stuff" Height="25" Grid.Column="1" Grid.Row="1"
Style="{StaticResource MyButton}" Click="Button2_OnClick">
<Button.Background>
<ImageBrush ImageSource="Images\ButtonEnterLight.png"></ImageBrush>
</Button.Background>
</Button>
这就是结果,
我需要做些什么才能让它消失?上周一直困扰着我。
编辑:这是Live Visual Tree的屏幕截图,扩展到第一个嵌入了Image的按钮。
答案 0 :(得分:2)
好吧,FocusVisualStyle是一个经常被忽视的System.Windows.Style属性值,在很多情况下会添加一个资源来帮助可视化控件何时具有活动焦点。
在您正在使用的Style
模板中可能并不总是很明显,因为默认值是一个空的静态样式,但在运行时通常也是有效的。因此,即使您已经为模板中的元素声明了触发器或视觉状态,通常最终会发生这种情况。在您未明确设置的元素上会出现幽灵边框或其他视觉效果。
要解决这个问题,你可以做几件事。
可以使用setter在模板实例上覆盖它,例如<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
[该值也可以有效地为Transparent
,无论哪种方式,您只是想声明您不希望BorderThickness有颜色。]
BorderThickness="0"
总体目标是,只处理FocusVisualStyle
的属性并消除其结果或隐藏它,因此它不再是视觉效果,您可以继续您的一天。
希望这会有所帮助,欢呼。