【问题标题】:Why is mouse wheel scrolling gone in a ScrollViewer?为什么 ScrollViewer 中的鼠标滚轮滚动消失了?
【发布时间】:2011-11-28 04:33:26
【问题描述】:

我在 TreeView 周围添加一个 ScrollViewer 有两个原因:

  1. 我希望更好地控制 TreeView 滚动条的外观

  2. 我想要更多地控制我的 TreeView 滚动条位置,因为我想要同步一些树视图。

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

我想我的问题是 2 部分。我通过添加自己的 ScrollView 有什么收获吗?这是设计使然吗?

【问题讨论】:

    标签: wpf treeview scrollviewer


    【解决方案1】:

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

    这也说明了您的滚动无法按预期工作的原因。您实际上在ScrollViewer 周围有一个ScrollViewer。您需要做的是从 TreeView 模板中删除 ScrollViewer,或者禁用它:

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

    也就是说,我确实认为在您的情况下更好的选择可能是重新模板/重新设置 TreeView 本身的样式。

    【讨论】:

    • 优点.. 我确实尝试禁用垂直滚动查看器的可见性,但到目前为止还没有奏效。不过,我确实同意其他观点。
    【解决方案2】:

    您可以重新模板树视图以删除内部滚动查看器

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

    【讨论】:

      猜你喜欢
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多