Почему прокрутка колесика мыши исчезла в ScrollViewer? - PullRequest
2 голосов
/ 27 ноября 2011

Я добавляю ScrollViewer вокруг TreeView по двум причинам:

  1. я хочу больше контроля над тем, как выглядит моя прокрутка TreeView

  2. Мне нужен больший контроль над положением полос прокрутки TreeView, потому что я хочу синхронизировать несколько видов дерева.

кажется, что, как только я добавляю ScrollView вокруг TreeView, я теряю возможность прокручивать его с помощью скроллера мыши.

Я думаю, мой вопрос состоит из 2 частей.Получу ли я что-нибудь, добавив свой собственный ScrollView, и является ли это поведение разработанным?

Ответы [ 2 ]

3 голосов
/ 27 ноября 2011

Я не думаю, что ни одно из ваших требований не исключает использование ScrollViewer в шаблоне TreeView. Возможно, вам придется изменить шаблон TreeView для достижения ваших целей.

Это также проливает свет на то, почему ваша прокрутка не работает должным образом. Вы фактически получили ScrollViewer около ScrollViewer. Для этого вам нужно либо удалить ScrollViewer из шаблона TreeView, либо отключить его:

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

Тем не менее, я думаю, что лучшим вариантом в вашем случае может быть изменение шаблона / стиля самого TreeView.

1 голос
/ 27 ноября 2011

вы можете пересмотреть свое древовидное представление, чтобы удалить внутренний просмотрщик прокрутки

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