0

我正在与一个虚拟问题作斗争好几个小时。

在 wpf 中,我想覆盖 a 的行为Button,并且目前达到了我想要的基本行为(某种颜色)。

但我不能简单地说:在鼠标悬停时添加下划线样式!我可以添加下划线,但我无法删除文本周围的方块!

这是在 mouseOver 之前:好的

下划线可以,但为什么文本周围的浅蓝色方块!?!

我使用的风格是:

 <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>

有什么想法/建议吗?

谢谢!

4

2 回答 2

0

将此设置器添加到样式中:

<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>
于 2013-10-31T17:42:20.910 回答
0

也许这会帮助你:

在 WPF 中禁用控件的选择背景效果

它涉及 ListViewItems,但您可以将此机制应用于按钮或任何其他 WPF 控件。

祝你好运

于 2013-10-31T15:55:12.017 回答