我正在与一个虚拟问题斗争几个小时。
在wpf中,我想覆盖Button
的行为,此时我想达到的基本行为(某种颜色)。
但我不能简单地说:在鼠标悬停时添加下划线样式! 我可以添加下划线,但我无法删除文本周围的方块!
我正在使用的风格是:
<Style TargetType="Button">
<Setter Property="Foreground" Value="{DynamicResource {x:Static vs_shell:EnvironmentColors.CommandBarMenuLinkTextBrushKey}}"></Setter>
<Setter Property="Cursor" Value="Hand"></Setter>
<Setter Property="Background" Value="Transparent"></Setter>
<Setter Property="BorderThickness" Value="0"></Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextDecorations="Underline" Text="{TemplateBinding Content}" Background="Transparent"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
有任何想法/建议吗?
谢谢!
答案 0 :(得分:0)
也许这会对你有所帮助:
Disable Control's Selection Background Effect in WPF
它涉及ListViewItems,但您可以在按钮或任何其他WPF控件上应用此机制。
祝你好运答案 1 :(得分:0)
将此setter添加到样式:
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>