我在 ScrollViewer 中有一个 TreeView。 当我在 TreeView 上转动鼠标滚轮时, TreeView 不会滑动并且保持在同一点。但是当我移动滚动条时,我可以滑动 TreeView 。
我很确定 TreeView 有一个滚动查看器,但我的观点是使用其他滚动查看器,我有一个滚动查看器模板,并且我在我的应用程序中使用了这个模板。这就是为什么我想再次使用这个模板。
这是代码:
<ScrollViewer Template="{DynamicResource AppleStyleScrollBarStyle}">
<TreeView>
<TreeViewItem Header="TreeViewItem"/>
<TreeViewItem Header="TreeViewItem"/>
<TreeViewItem Header="TreeViewItem"/>
<TreeViewItem Header="TreeViewItem"/>
</TreeView>
</ScrollViewer>
最佳答案
这个答案对我有帮助: WPF Remove ScrollViewer from TreeView
https://serialseb.com/blog/2007/09/03/wpf-tips-6-preventing-scrollviewer-from/
只需订阅您的 TreeView 的 PreviewMouseWheel 事件:
// https://serialseb.com/blog/2007/09/03/wpf-tips-6-preventing-scrollviewer-from/
private void treeView_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
if (sender is TreeView && !e.Handled)
{
e.Handled = true;
var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
eventArg.RoutedEvent = UIElement.MouseWheelEvent;
eventArg.Source = sender;
var parent = ((Control)sender).Parent as UIElement;
parent.RaiseEvent(eventArg);
}
}
关于wpf - 无法在 ScrollViewer 内滚动 TreeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28170950/