我正在尝试设置一个按钮,因此仅当鼠标越过它时,按钮将其视觉属性更改为启用按钮。

这是我的代码:

    <Button Foreground="Black" Content="OK" Margin="186,100,170,172" >
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="IsEnabled" Value="False" />
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="IsEnabled" Value="True" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>

在此先感谢您的帮助。

有帮助吗?

解决方案

您可以将您的按钮封装在边框中以获取您的目标

<Border Name="buttonBorder" Margin="186,100,170,172"
        Background="#01000000" BorderBrush="Transparent" BorderThickness="0">
    <Button Foreground="Black" Content="OK">
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="IsEnabled" Value="False" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=buttonBorder, Path=IsMouseOver}" Value="True">
                        <Setter Property="IsEnabled" Value="True" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
</Border>

其他提示

我认为您不可能在这里做什么,因为在禁用该按钮时,Ismouseover是错误的(也不会生成Mousemove或其他事件)。

要实现您想要的东西(顺便说一句,为什么要在将鼠标放在上面时启用禁用按钮?这是如此不自然...如果您想使用键盘导航到按钮?如果禁用),则应重新安装按钮,并在鼠标未结束时使其看起来像在残疾状态下,并且在鼠标结束时启用状态处于启用状态 - 但这需要一些工作)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top