2011-11-27 196 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>