当ItemsControl中的项目溢出其容器时,如何使用Trigger交换模板?
在我当前的实现中,我想根据ItemsControl的当前状态是否显示如果滚动条可见性设置为Auto时内容会导致ScrollViwer的滚动条出现,来显示更简短的模板形式。所以我对ScrollViewer或ItemsControl上的任何属性感兴趣,这可能会让我知道它是否溢出了它的ScrollViewer。如果我必须使用一些自定义的ValueConverter来设置一个合理的布尔值来绑定,我想这也没关系。
答案 0 :(得分:1)
好的,所以我最终自己想出了这个。
在我的情况下,我使用Logical Scrolling而不是物理滚动,因为我有一个水平布局,所以我所要做的就是在ScrollViewer.ScrollableWidth上触发。在我的案例中让这个工作的秘诀是确保我将ScrollViewer.HorizontalScrollBarVisibility设置为Hidden而不是Disabled。这将使内容滚动并使其成为可滚动宽度属性实际上具有有意义的值。
注意: 好奇地将HorizontalScrollBarVisibility设置为Hidden似乎在视觉上折叠滚动条所以我不完全确定在这种情况下Collapse和Hidden之间的区别。