【发布时间】:2014-02-24 17:13:36
【问题描述】:
我在一个网格内有一个ListView,而网格又在一个“整体ScrollViewer”内。
用户应该能够水平滚动整个页面,然后垂直向下滚动几个类似元素的子列表。虽然我可以水平滚动,但将外部 ScrollViewer 放在页面内容周围会破坏我的 ListViews
这是我的 XAML 设置的精简版:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="140" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock x:Uid="Title" Text="Title"/>
<ScrollViewer Grid.Row="1" ZoomMode="Disabled"
VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Auto"
VerticalScrollMode="Disabled"
HorizontalScrollMode="Enabled">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="380" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<!--My List-->
<ListView x:Name="MyList" Grid.Column="0" />
<Grid x:Name="AppointmentDetailView" Grid.Column="1">
<!--Some other stuff-->
</Grid>
</Grid>
</ScrollViewer>
</Grid>
如果我在 ListView 的任何父级或 ListView 本身上设置了固定高度,则滚动会按预期工作,但对于不同尺寸的屏幕来说,固定高度是不可取的。我尝试绑定到 ListViews 父母的 ActualHeight 但没有运气。
即使ScrollViewer.VerticalScrollMode 被禁用,似乎ScrollViewers 子级也不受可用高度的限制。对我来说似乎很奇怪,我原以为ScrollViewer 的布局逻辑在它被禁用的方向上与Grid 相似。
感谢您的帮助,谢谢!
【问题讨论】:
标签: c# xaml windows-runtime scroll