当我的鼠标位于切换按钮上时,我正在尝试调用命令。
我有以下代码。
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"></Setter>
<Setter Property="Command" Value="{Binding Path=PushPinMouse}" />
</Trigger>
当我滚动鼠标时,手显示。但是,当我将鼠标滑过它时,它没有按下我的PushPinMouse方法。为什么会这样?
答案 0 :(得分:0)
设置按钮的Command
属性不应该触发命令。它应该指定一个命令,单击该按钮时将触发该命令。 MSDN says so马上:
获取或设置按下此按钮时要调用的命令。
答案 1 :(得分:0)
没有直接的方法可以做到这一点。一种常见的模式是制作附加行为,该行为将听取相关事件并发起事件。
这个CodeProject arcticle on the Cinch Framwork演示了一个好的,简单的实现。查找LifetimeEvent类实现。这提供了附加行为,该行为订阅表单上的“已激活”事件。您可以轻松地创建一个侦听IsMouseOver更改并触发命令的人。
如果你写了,那么你可以这样做:
<Button local:HoverBehavior.Hovering="{Binding MyCommand}" />
您可以使用Expression Blend SDK中的Behavior<T>
类以更简单的方式实现此功能。