我有一个listview
(检查列表)- 标题上有checkbox
以选择列表中的所有项目
现在,我担心用户应该无法选择列表中不可见的项目(由于VerticalScrollBar
而隐藏)
我有2个解决方案可以解决这个问题
- 仅选择列表中可见的那些项目(这似乎很困难)
- 禁用选择所有
checkbox
,如果有垂直滚动条可见
我要采用第二个解决方案,其中我需要知道verticalScrollBar
是否出现。
如果ListView
的可见性为"自动",如何知道VerticalScrollbar
是否可见?
您可以使用
ScrollViewer
ScrollViewer sv = FindVisualChild<ScrollViewer>(myListView);
Visibility VerticalScrollbarVisibility = sv .ComputedVerticalScrollBarVisibility;
来自 MSDN 的 FindVisualChild 实现示例
private childItem FindVisualChild<childItem>(DependencyObject obj)
where childItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else
{
childItem childOfChild = FindVisualChild<childItem>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}