WPF:Canvas Z-Index Bug

时间:2009-04-13 03:42:28

标签: c# wpf canvas z-index

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

Carousel Image http://img4.imageshack.us/img4/9599/carousele.jpg

正如你可以清楚地看到这个图像,我的鼠标指针在按钮上写着16。但是上面写着18的按钮是一个蓝色的按钮,好像我的鼠标在那个按钮上。我还将工具提示设置为绑定到内容,工具提示说我的鼠标位于按钮上,其中包含18个。这应该是CORRECT行为,因为18是按钮z-index值。因此,上面有18的按钮应该是按钮的ON TOP,上面有16。但是,WPF没有以这种方式渲染画布,我想知道如何克服这个问题。我试过canvas.InvalidateArranage(),canvas.invalidateVisual(),canvas.UpdateLayout(),但我没有运气。画布的左侧显示它应该是什么样子,但即使z-index值正确,右侧也无法产生相同的结果,甚至这个截图也证明了我的观点,即这是WPF中的一个错误。

1 个答案:

答案 0 :(得分:5)

在wpf中,技术上你的鼠标是18岁以上。触发事件(可能)的方式如下:

我已超过“16”,将鼠标悬停为16 我超过了“18”,将鼠标悬停在18岁以上

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

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