我需要知道用户是否点击或将鼠标移动到ListBox本身或其滚动条上,但是现在我总是收到类似于列表框上的消息。
答案 0 :(得分:1)
如果您为问题提供了一些背景信息,那么回答会更容易。在拖放操作上实现视觉反馈时我不得不做类似的事情,虽然我不知道你正在做什么。因此,我所能做的就是告诉你我是如何处理我的问题的。
基本上,我使用了这样的SystemParameters.VerticalScrollBarWidth
property:
...
if (mouseXPositionInListBox > dragSourceControl.ActualWidth -
SystemParameters.VerticalScrollBarWidth - dragSourceControl.Padding.Right)
isScrolling = true;
...
它也可以在XAML中使用:
<Grid Width="{DynamicResource
{x:Static SystemParameters.VerticalScrollBarWidthKey}}" />
如果您正在使用其他维度,则还有SystemParameters.HorizontalScrollBarHeight
property。
更新&gt;&gt;&gt;
您可以通过阅读ScrollBar
的值来检测(垂直)ScrollViewer.VerticalScrollBarVisibilityProperty DependencyProperty
是否可见:
ScrollBarVisibility visibility = (ScrollBarVisibility)yourListbox.GetValue(
ScrollViewer.VerticalScrollBarVisibilityProperty);
您可能也有兴趣使用ScrollViewer.ViewportWidth
Property和/或ScrollViewer.ViewportHeight
Property,它会告诉您ScrollViewer
中可见区域的实际大小