c# - Windows 8 Metro ListView - 无法禁用 ScrollViewer (C#/XAML)

标签 c# xaml listview windows-8 scrollviewer

我有一个 ScrollViewer,其中包含一个 Horizo​​ntal StackPanel,其中包含 2 个 ListView。

我的目标是让 2 个 ListView 一起滚动。我遇到的问题是我无法禁用 ListView 中的内置 ScrollViewers...无论我做什么,它们都会继续独立滚动。我真的一定错过了一些东西......任何帮助将不胜感激。

这是我的 XAML:

<ScrollViewer VerticalScrollBarVisibility="Visible" 
          HorizontalScrollBarVisibility="Disabled" 
          ZoomMode="Disabled" 
          HorizontalAlignment="Left" 
          VerticalAlignment="Top" 
          Width="830" 
          Height="500">

  <StackPanel x:Name="teesSP" 
              HorizontalAlignment="Left" 
              Height="500" 
              Width="830" 
              Orientation="Horizontal" 
              VerticalAlignment="Top">

      <ListView x:Name="timesLV1" 
                HorizontalAlignment="Left" 
                Width="130" 
                Height="500" 
                ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                ScrollViewer.HorizontalScrollMode="Disabled"
                ScrollViewer.IsHorizontalRailEnabled="False"
                ScrollViewer.IsHorizontalScrollChainingEnabled="False"
                ScrollViewer.IsScrollInertiaEnabled="False"
                ScrollViewer.IsVerticalRailEnabled="False"
                ScrollViewer.IsVerticalScrollChainingEnabled="False"
                ScrollViewer.IsZoomChainingEnabled="False"
                ScrollViewer.IsZoomInertiaEnabled="False"
                ScrollViewer.VerticalScrollBarVisibility="Disabled"
                ScrollViewer.VerticalScrollMode="Disabled"
                BorderThickness="2" 
                BorderBrush="Black" 
                VerticalAlignment="Top" 
                ItemTemplate="{StaticResource TimeTileTemplate}"
                SelectionMode="Single" 
                SelectionChanged="timesLV_Click" />

      <ListView x:Name="timesLV2" 
                HorizontalAlignment="Left" 
                Width="700" 
                Height="500" 
                ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                ScrollViewer.HorizontalScrollMode="Disabled"
                ScrollViewer.IsHorizontalRailEnabled="False"
                ScrollViewer.IsHorizontalScrollChainingEnabled="False"
                ScrollViewer.IsScrollInertiaEnabled="False"
                ScrollViewer.IsVerticalRailEnabled="False"
                ScrollViewer.IsVerticalScrollChainingEnabled="False"
                ScrollViewer.IsZoomChainingEnabled="False"
                ScrollViewer.IsZoomInertiaEnabled="False"
                ScrollViewer.VerticalScrollBarVisibility="Disabled"
                ScrollViewer.VerticalScrollMode="Disabled"
                BorderThickness="2" 
                BorderBrush="Black" 
                VerticalAlignment="Top" 
                ItemTemplate="{StaticResource TimeTileTemplate}"
                SelectionMode="Single" 
                SelectionChanged="timesLV_Click" />

  </StackPanel>

</ScrollViewer>

最佳答案

这是因为您为每个 ListView 指定了一定的宽度和高度。从 ListView 和 StackPanel 中删除宽度和高度,仅将其用于滚动查看器。

然后,您只需使 ScrollViewer 具有固定的高度或包含它的网格的大小即可。

关于c# - Windows 8 Metro ListView - 无法禁用 ScrollViewer (C#/XAML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166212/

相关文章:

c# - Path= 在 XAML 中有什么用?

android - 如何在不关闭的情况下在android中的recyclerview上滑动

c# - 带逗号的百分比正则表达式

c# - 在 DAL 或服务层记录错误

c# - 在 C# 中比较 RGB 颜色

c# - ComboBox 中的选定属性未显示

c# - 在运行时即时更改应用程序语言

c# - 在 Xamarin Forms 中的页面之间共享单个 ViewModel 实例

wpf - 在 Wpf 中显示与 MVVM 中的 ListView 不同的 View (缩略图、详细信息列表)

c# - 如何在 listView OnItemEditing 中获取 DataItem?