WPF listbox 获取滚动条位置
时间: 2024-02-18 12:31:40 浏览: 253
可以使用ListBox的ScrollViewer属性来获取ScrollViewer控件,然后使用ScrollViewer的VerticalOffset属性来获取垂直滚动条位置,或使用HorizontalOffset属性来获取水平滚动条位置。
例如:
```csharp
var scrollViewer = listBox1.FindVisualChild<ScrollViewer>();
double verticalOffset = scrollViewer.VerticalOffset;
double horizontalOffset = scrollViewer.HorizontalOffset;
```
其中FindVisualChild是一个扩展方法,用于查找ListBox的子控件ScrollViewer:
```csharp
public static T FindVisualChild<T>(DependencyObject parent) where T : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
if (child is T result)
{
return result;
}
else
{
var grandChild = FindVisualChild<T>(child);
if (grandChild != null)
{
return grandChild;
}
}
}
return null;
}
```
阅读全文