我的页面左侧有一个垂直 StackPanel,其中包含以下元素:
- 1 个文本块
- 1 个带有多个元素的垂直 StackPanel,可填充可用空间
我正在尝试使用ScrollViewer元素使第二个StackPanel 可滚动,但没有成功。如果我将 ScrollViewer Height 定义为某个值,它可以工作,但我不想这样做,因为我希望它填充所有可用的垂直空间。
我正在考虑在读取 StackPanel 计算高度的代码中应用 ScrollViewer Height,但这似乎不是正确的做法。我还尝试将Height和ActualHeight绑定到 StackPanel Height 属性,但没有结果。
<ScrollViewer
Grid.Row="1"
VerticalAlignment="Top"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollMode="Enabled"
ScrollViewer.HorizontalScrollMode="Disabled"
ScrollViewer.ZoomMode="Disabled">
<StackPanel x:Name="sptest" Orientation="Vertical">
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test1</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test2</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test3</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test4</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test5</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test6</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test7</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test8</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test9</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test10</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test11</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test12</TextBlock>
</StackPanel>
</ScrollViewer>
除了我还有一个 GridView 填充水平可用空间,它自动有滚动条。我没有定义它,它会在必要时出现。奇怪的是 StackPanel 的行为不像我想要的那样。我究竟做错了什么?
编辑
我发现了这个问题。它是关于WPF而不是 WinRT 但可能是同样的问题。它说:
你不能不固定 StackPanel 的高度。它旨在无限期地向一个方向增长。我建议使用不同的面板
我将 StackPanel 更改为 Grid(由于行定义,我不想这样做,因为我只想要一列)但 ScrollViewer 也不起作用。