【发布时间】:2009-04-13 03:42:28
【问题描述】:
所以我在 WPF 中制作了自己的轮播控件。我偶然发现了一个错误,想知道是否有人知道我可以如何解决这个问题,比如方法调用或一系列方法调用或一些变通方法。这是我的轮播的打印屏幕:
Carousel Image 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 值正确,右侧也无法产生相同的结果,甚至这个屏幕截图也证明了我的观点,这是 WPF 中的一个错误。
【问题讨论】:
-
你能提供一些源代码吗?它可能是 WPF 或您的代码中的错误。没有代码,只是道听途说。
-
我可以为你生成源代码,但它本身就是整个控件,因为 z-index 的东西并不都在一个位置。
-
同意。这里不够继续。请添加一些代码。
-
你能只发布与轮播项目控件相关的事件处理程序吗?
-
我认为处理鼠标悬停 18 的事件处理程序会将其移动到轮播的顶部,但是,项目 14 位于顶部,这让人怀疑是否没有几个其他问题也是如此。我认为要得到这个问题的明确答案,您将不得不发布一些事件处理源。