WPF获取控件内部的ScrollViewer,并控制ScrollViewer操作
2014-05-13 09:11
211 查看
//获取内部 ScrollViewer方法
public static T FindVisualChild<T>(DependencyObject obj) where T : DependencyObject
{
if (obj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is T)
{
return (T)child;
}
T childItem = FindVisualChild<T>(child);
if (childItem != null) return childItem;
}
}
return null;
}
//通过鼠标滑轮事件控制ScrollViewer滚动
private void list_MouseWheel(object sender, MouseWheelEventArgs e)
{
ItemsControl items = (ItemsControl)sender;
ScrollViewer scroll = FindVisualChild<ScrollViewer>(items);
if (scroll != null)
{
int d = e.Delta;
if (d > 0)
{
scroll.LineRight();
}
if (d < 0)
{
scroll.LineLeft();
}
scroll.ScrollToTop();
}
}
public static T FindVisualChild<T>(DependencyObject obj) where T : DependencyObject
{
if (obj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is T)
{
return (T)child;
}
T childItem = FindVisualChild<T>(child);
if (childItem != null) return childItem;
}
}
return null;
}
//通过鼠标滑轮事件控制ScrollViewer滚动
private void list_MouseWheel(object sender, MouseWheelEventArgs e)
{
ItemsControl items = (ItemsControl)sender;
ScrollViewer scroll = FindVisualChild<ScrollViewer>(items);
if (scroll != null)
{
int d = e.Delta;
if (d > 0)
{
scroll.LineRight();
}
if (d < 0)
{
scroll.LineLeft();
}
scroll.ScrollToTop();
}
}
相关文章推荐
- WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条)
- WPF DataGridTemplateColumn 获取内部控件
- [转载]潜移默化学会WPF(技巧篇)--具有Items元素的控件子项获取(一)
- Wpf 获取控件句柄
- 使用RenderTargetBitmap获取WPF控件图像
- WPF中获取控件之间的相对位置
- WPF TextBox 控件获取热键并转为 win32 Keys
- 获取WPF树结构中的控件
- WPF管理系统自定义分页控件 - WPF特工队内部资料
- 在MainActivity的内部静态类PlaceholderFragment 类中的onCreateView中获取fragment_main.xml中控件
- 获取WPF所有控件的模板内容
- 在WPF里面获取右键弹出菜单(ContextMenu)的鼠标点击源(Owner)控件
- CodedUI Test 测试WPF程序,无法获取控件属性值的解决方法
- WPF 遍历DataTemplate(获取所有控件)
- wpf窗体中复合控件焦点控制
- 获取grideview内部控件的值的方法
- 模板内部含有ScrollViewer控件强制刷新界面不起作用解决方案
- 在WPF中获取DataGridTemplateColumn模板定义的内容控件
- WPF获取子、父窗体控件
- WPF 遍历DataTemplate(获取所有控件)