从下面的代码可以看出,我有一个ScrollViewer,其中只有两个子节点是两个TreeView。每个TreeView都包含一个TreeViewItem,它本身包含一个ListBox。 ListBox的项目是动态生成的。这是非常令人费解的,但我还没有想到更好的东西,所以它就是这样。我遇到的问题是将整个事件作为一个控件滚动。这是XAML:
<ScrollViewer MaxHeight="600" MinHeight="40">
<TreeView Name="TVControl">
<TreeViewItem Name="TVI1" Header="TreeViewItem1">
<ListBox Name="ListBox1" />
<!-- List of dynamically populated items -->
</TreeViewItem>
<TreeViewItem Name="TVI2" Header="TreeViewItem2">
<ListBox Name="ListBox2" />
<!-- List of dynamically populated items -->
</TreeViewItem>
</TreeView>
</ScrollViewer>
如果我的鼠标位于垂直滚动条上方,则鼠标滚轮可以正常工作,但当鼠标位于控件的其余部分时,它不起作用。在我看来,我能够从一个事件中遍历树来控制滚动,但我不知道那可能是什么。此外,如果有一种更简单的方法可以直观地获得完全相同的结果而不是深入了解5个控件,我也对这个建议持开放态度。