DataTemplate中按钮的MouseOver效果

时间:2016-07-29 10:06:53

标签: c# wpf

我使用DataTemplate来显示一些带有自定义视图的按钮(带有图像,文本等)。这是一个简化的例子:

<DataTemplate DataType="{x:Type viewModel:ActionItem}">

    <Button Background="SlateGray" Command="{Binding Command}">
        <Button.Style>
            <Style TargetType="{x:Type Button}">
                <Setter Property="Background" Value="Green"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border Background="{TemplateBinding Background}">
                                <ContentPresenter />
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="DarkGoldenrod"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Button.Style>

        <TextBlock Text="{Binding Name}" />

    </Button>

</DataTemplate>

为什么鼠标效果根本不起作用?

2 个答案:

答案 0 :(得分:4)

因为Background="SlateGray"会覆盖您在Style中触发的任何内容。删除该位,它应该工作。

答案 1 :(得分:0)

请在模板级别设置触发器,如

http://mysite.fr/wp-content/uploads/2016/custom/master.css