【问题标题】:WPF list view's grid view area mouse captureWPF列表视图的网格视图区域鼠标捕获
【发布时间】:2013-12-02 20:15:29
【问题描述】:

有什么方法可以检查双击是否发生在 WPF ListView 的 GridView 区域内?如果我们使用listview鼠标双击事件,在listview的滚动条上双击也会触发鼠标双击事件。

我正在寻找一种方法来识别鼠标双击是否仅在列表视图项目的顶部?

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您可以使用SystemParameters.HorizontalScrollBarHeightSystemParameters.VerticalScrollBarWidth 属性来帮助您解决此问题。下面是检测垂直ScrollBar是否被使用的例子:

    double mouseXPositionInListView = Mouse.GetPosition(yourListView).X;
    if (mouseXPositionInListView > yourListView.ActualWidth - 
        SystemParameters.VerticalScrollBarWidth - yourListView.Padding.Right) 
    {
        // The user is scrolling vertically
    }
    

    更新>>>

    如果你想忽略GridView列标题区域的点击,那么只需调整上面的代码以包含标题的Height。您可以使用GridViewColumnHeader.Height 属性获取标头的Height。请注意,这不是像上一个那样的 static 属性,因此您必须从您的 GridView 获取它。

    【讨论】:

    • 谢谢。但是这段代码在哪里使用?在鼠标双击事件或??
    • 是的。这是工作。但这仅适用于滚动条。但是如何点击列标题?如果我们双击标题,它将触发鼠标双击。
    猜你喜欢
    • 1970-01-01
    • 2015-02-01
    • 2014-12-08
    • 2011-07-26
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    相关资源
    最近更新 更多