我在ItemsControl中有一个ScrollViewerItemsControl中的项目被扩展为DataTemplate,它基本上由Adorner组成。

现在的问题是,在滚动时,Adorner的可视子级在ScrollViewer之外可见。假设我从“水平偏移量0”滚动到100,“Adorner”的“可视子级”向左移动,并且在ScrollViewer旁边可见,尽管它们应该被隐藏。在ClipToBoundsItemsControl上设置ScrollViewer不起作用。

我知道,Adorner在所有元素上均按z顺序进行渲染,但是在像ScrollViewer这样的情况下,它们实际上不应该可见。装饰的Element的行为与预期的一样,并且无法通过ScrollViewer看到。

有什么简单的方法可以“剪切” Adorner,使其仅在可见的滚动区域中可见?

谢谢,
安德烈(Andrej)

最佳答案

在包含的控件上设置ClipToBounds是不够的。您还必须设置装饰器的IsClipEnabled属性。

关于WPF Adorner剪辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1372574/

10-13 04:42