我在TreeView周围添加ScrollViewer有两个原因:
我希望更多地控制TreeView滚动条的显示方式
我想要更多地控制我的TreeView滚动条位置,因为我想同步一些树视图。
似乎只要在TreeView周围添加ScrollView,我就无法使用鼠标滚动器滚动它。
我想我的问题是2部分。通过添加我自己的ScrollView获得任何东西,这是设计的这种行为吗?
答案 0 :(得分:3)
我认为您的任何一项要求都不会妨碍使用ScrollViewer
模板中的TreeView
。您可能需要重新模板TreeView
才能实现目标。
这也说明了为什么滚动无法按预期工作。您实际上在ScrollViewer
附近获得ScrollViewer
。你需要做的就是从TreeView模板中删除ScrollViewer,或者禁用它:
<TreeView ScrollViewer.VerticalScrollBarVisibility="Disabled" ...>
那就是说,我认为在你的情况下更好的选择可能是重新模板/重新设计TreeView
本身。
答案 1 :(得分:1)
您可以重新模拟树视图以删除内部滚动查看器
<ScrollViewer Height="200" Width="200">
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeView}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeView">
<Border Name="Border"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}"
CornerRadius="1"
BorderThickness="1">
<ItemsPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TreeView.Resources>
<TreeViewItem IsExpanded="True">Test001</TreeViewItem>
<TreeViewItem IsExpanded="True">Test002</TreeViewItem>
<TreeViewItem IsExpanded="True">Test003</TreeViewItem>
<TreeViewItem IsExpanded="True">Test004</TreeViewItem>
<TreeViewItem IsExpanded="True">Test005</TreeViewItem>
<TreeViewItem IsExpanded="True">Test006</TreeViewItem>
<TreeViewItem IsExpanded="True">Test007</TreeViewItem>
<TreeViewItem IsExpanded="True">Test008</TreeViewItem>
<TreeViewItem IsExpanded="True">Test009</TreeViewItem>
</TreeView>
</ScrollViewer>