我在ItemsControl
中有一个ScrollViewer
。 ItemsControl
中的项目被扩展为DataTemplate
,它基本上由Adorner
组成。
现在的问题是,在滚动时,Adorner
的可视子级在ScrollViewer
之外可见。假设我从“水平偏移量0”滚动到100,“Adorner
”的“可视子级”向左移动,并且在ScrollViewer
旁边可见,尽管它们应该被隐藏。在ClipToBounds
或ItemsControl
上设置ScrollViewer
不起作用。
我知道,Adorner
在所有元素上均按z顺序进行渲染,但是在像ScrollViewer
这样的情况下,它们实际上不应该可见。装饰的Element
的行为与预期的一样,并且无法通过ScrollViewer
看到。
有什么简单的方法可以“剪切” Adorner
,使其仅在可见的滚动区域中可见?
谢谢,
安德烈(Andrej)
最佳答案
在包含的控件上设置ClipToBounds
是不够的。您还必须设置装饰器的IsClipEnabled
属性。
关于WPF Adorner剪辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1372574/