использование триггера для установки кнопки IsEnabled в значение true при наведении мыши - PullRequest
3 голосов
/ 17 декабря 2010

Я пытаюсь установить кнопку так, только когда мышь над ней кнопка изменит свои визуальные свойства на активированную кнопку.

Это мой код:

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

Заранее спасибо за помощь.

Ответы [ 2 ]

5 голосов
/ 17 декабря 2010

Вы можете инкапсулировать свою кнопку в границу, чтобы получить то, что вам нужно

<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>
2 голосов
/ 17 декабря 2010

Я не думаю, что это возможно, что вы хотите сделать здесь, потому что, хотя кнопка отключена, IsMouseOver имеет значение false (кроме того, он не генерирует MouseMove или другие события).

Чтобы достичь того, что вы хотите (кстати, почему вы хотите, чтобы отключенная кнопка стала активной, когда вы надели на нее мышь? Это так неестественно ... как насчет того, чтобы перейти с клавиатуры к кнопке? будет невозможно, если она отключена), вы должны изменить стиль кнопки и сделать так, чтобы она выглядела как в ее отключенном состоянии, когда мышь не находится над ней, и как в ее активированном состоянии, когда мышь находится над ней - но это потребует некоторой работы) .

...