【发布时间】:2014-01-30 17:47:47
【问题描述】:
我想获得向下滚动列表视图时单击的点的“真实”Y 值。
这是 XAML:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" MaxHeight="350" MinHeight="350" Width="525">
<Grid>
<ListView Name="MyListView" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto">
</ListView>
</Grid>
</Window>
这里是代码:
Class MainWindow
Sub New()
InitializeComponent()
For i As Integer = 0 To 100
MyListView.Items.Add(i)
Next
End Sub
Private Sub MyListView_MouseLeftButtonUp(sender As Object, e As MouseButtonEventArgs) Handles MyListView.MouseLeftButtonUp
MsgBox(e.GetPosition(MyListView).Y)
End Sub
End Class
我现在的问题是,无论我向下滚动多远,顶部始终为 1,底部始终为 309,但向下滚动时,我希望获得高于 309 的值。 有没有办法找出我点击的“真实”Y坐标,或者找出我向下滚动了多远,然后能够计算调整后的值? 顺便说一句,将列表视图包装在滚动查看器控件中不是一个选项。
感谢您的任何回答
【问题讨论】:
-
欢迎来到 Staock Overflow。您的问题写得很好,但您可以通过添加描述与问题相关的语言的标签来改进
-
谢谢,感谢您的帮助。
-
希望有人能真正回答这个问题。我不是 vb.net 的人,但通常我希望这个问题的答案需要询问滚动条它滚动了多远。也许这是值得研究的事情......
-
这是我的第一个想法,但我不知道如何访问 ListView 的内置 ScrollViewer。我不想在控件周围包裹一个额外的滚动查看器。 vb.net 或 C# 中的解决方案表示赞赏。
标签: wpf vb.net listview scroll coordinate