2

所以我在 WPF 中制作了自己的轮播控件。我偶然发现了一个错误,想知道是否有人知道我可以如何解决这个问题,比如方法调用或一系列方法调用或一些变通方法。这是我的轮播的打印屏幕:

轮播图片 http://img4.imageshack.us/img4/9599/carousele.jpg

正如你可以清楚地看到这张图片,我的鼠标指针在按钮上,上面写着 16。但是上面写着 18 的按钮是蓝色的,就好像我的鼠标在那个按钮上一样。我还将工具提示设置为绑定到内容,并且工具提示说我的鼠标悬停在带有 18 个按钮的按钮上。这应该是正确的行为,因为 18 是按钮的 z-index 值。因此,上面有 18 的按钮应该在上面有 16 的按钮的顶部。然而,WPF 并没有以这种方式渲染画布,我想知道如何克服这个问题。我尝试了 canvas.InvalidateArranage()、canvas.invalidateVisual()、canvas.UpdateLayout() 但我没有运气。画布的左侧显示了它应该是什么样子,但即使 z-index 值正确,右侧也无法产生相同的结果,

4

1 回答 1

5

在 wpf 中,从技术上讲,您的鼠标超过 18 岁。事件(可能)被触发的方式如下:

我超过“16”,调用鼠标悬停 16 我超过“18”,调用鼠标悬停 18

因为 18 是最近调用的,所以它被选中(再次,只是我的猜测)。

在 mousemove 事件的事件参数中(我假设 mousemove),确保设置 e.Handled = true,这样它只处理一次

于 2009-11-09T22:39:10.220 回答