2011-11-27 200 views
2

我加入在我的TreeView一个ScrollViewer中有2个原因:为什么滚动查看器中鼠标滚轮滚动?

  1. 我想要更多控制权的方式我TreeView的滚动条看起来

  2. 我想在我的TreeView的滚动条的位置更多的控制,因为我想同步几个树视图。

似乎只要我在TreeView周围添加一个ScrollView,我就失去了使用鼠标滚轮来滚动它的能力。

我想我的问题是2部分。我是否通过添加我自己的ScrollView来获得任何收益,并且是否通过设计实现了这种行为?

回答

3

我不认为您的任何要求都不能使用TreeView模板中的ScrollViewer。您可能需要重新模板TreeView才能实现您的目标。

这也说明了为什么您的滚动无法按预期工作。你已经有效地获得了ScrollViewerScrollViewer。什么,你需要为工作做的是无论是从树视图模板中删除ScrollViewer中,或将其禁用:

<TreeView ScrollViewer.VerticalScrollBarVisibility="Disabled" ...> 

这就是说,我认为你的情况是更好的选择可能会重新模板/重新设计TreeView本身。

+0

好点。我曾尝试禁用垂直ScrollViewer中的知名度,但没有被不那么远工作。但是,我同意其他观点。 –

1

可以retemplate您的TreeView去除内的ScrollViewer

<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>