WPF XAML - 覆盖按钮的MouseOver外观

时间:2017-02-24 18:45:32

标签: c# wpf xaml

我尝试了在本网站或其他网站上找到的所有其他解决方案,但它不起作用。这是按钮:

<Button Grid.Row="1" Grid.Column="0" HorizontalAlignment="Stretch" 
            VerticalAlignment="Stretch" Margin="10,10,5,10" BorderThickness="3">
    <Button.Background>
        <SolidColorBrush Opacity="0.0" Color="#b3b3b3"/>
    </Button.Background>
    <Button.BorderBrush>
        <SolidColorBrush Opacity="0.3" Color="Gray"/>
    </Button.BorderBrush>

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="5*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
    </Grid>
</Button>

我尝试了什么:

Windows.Resources

中添加样式
<Style.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter Property="Background" Value="Gray"/>
    </Trigger>
</Style.Triggers>

并在按钮内添加此功能。 我得到的两个解决方案是,无论是旧的突出显示外观,还是错误我无法更改Content两次。由于我没有想法,有人可以告诉我如何更改我的按钮突出显示的外观吗?

修改

从我在答案中提到的帖子中逐个字符复制:

<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="50" Height="50" HorizontalContentAlignment="Left" BorderBrush="{x:Null}" Foreground="{x:Null}" Margin="50,0,0,0">
        <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 HorizontalAlignment="Center" VerticalAlignment="Center"/>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="DarkGoldenrod"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>

现在它有效。它没有的原因是我自己的按钮 - 在这个问题中 - 有一些自己的属性,比如那些brushesgrid

1 个答案:

答案 0 :(得分:0)

更新:所有解决方案都能正常运行,他们没有对我说的原因是我的按钮在其中定义了自己的风格。一旦我评论了我的旧按钮,并添加了一个像这样的裸按钮:

修改

我在这里说define their own style。这是一种错误的方式来称呼它,我的意思是画笔和网格。     

This thread成功了。