我要做的基本上是为要触发的事件设置条件。我有这个自定义控件,其中有一个Grid具有以下行为:MouseOver:Opacity另一个Grid(从现在起被称为priorityFlag并放置在触发的被称为priorityGrid)的 设置为 从0到100并且它Width的设置从10到20。MouseLeave: Opacityof thepriorityFlag被设置回0,它的Width回被设置为10。MouseUp:用户单击priorityFlag的行之一,并通过命令更改 的颜色priorityGrid。当点击结束时,priorityFlag'sOpacity转到0并将其Width设置回10(基本上与MouseLeave事件的行为相同)。它工作得很好,但是当MouseUp发生并且用户离开时priorityGrid,MouseLeave事件被触发并且我获得以下行为(你可以看到我在 上悬停几次priorityGrid然后更改优先级颜色):如您所见,该MouseLeave事件引起了令人讨厌的闪烁效果。我想知道的是:我可以设置触发器以避免属性更改吗?在我看来,没有参数允许我这样做......
1 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
看起来当您触发 MouseUp 触发器时,它也会触发 MouseOver 触发器。因此,priorityFlag 的 Width 在同一时间内两次更改为 20。很明显,当你将鼠标移开时,它被两次改回,一次(i)通过MouseLeave和一次(ii)通过MouseUp结束点击,也基本上在同一时间,这会导致闪烁。
您可以在包含所有鼠标事件的类中定义一个私有标志属性,当 priorityFlag 的 Width 设置为 20 时,该属性将设置为 true,并在再次将其设置为 20 之前测试该标志。或者您只需在任何鼠标触发事件中更改它之前测试当前宽度。
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消