我正在为Windows Phone 8.1构建自定义控件。但是stackpanel没有向下滚动。 StackPanel包含一个ListView,它可以显示TextBlock&另一个包含切换按钮的StackPanel。
<StackPanel Orientation="Vertical" >
<ListView Grid.Row="0" Background="RoyalBlue">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="Some Text" Foreground="Black" FontSize="20" TextAlignment="Center" ></TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackPanel Grid.Row="2" HorizontalAlignment="Stretch" Background="Red" Orientation="Horizontal">
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ToggleButton Grid.Column="0" Content="Toggle Me" />
</Grid>
</StackPanel>
</StackPanel>
答案 0 :(得分:5)
Stackpanel不提供任何滚动。 您可以将其包装到ScrollViewer中。
另外:listView已经提供滚动。
但是:StackPanel里面的ListView会拾取你所有的操作事件。此外,Stackpanel内的ListView将具有无限的高度,因此无法实现其虚拟化功能。
如果您只想在ListView上方和/或下方创建内容,可以使用其页眉/页脚属性。
答案 1 :(得分:1)
在StackPanel上添加ScrollViewer,它将使其可滚动。
例如:
array(
[2015-09-29] => array(
[date] => 2015-09-29
[fully_book] => true,
[time] => array(
[0] => morning,
[1] => night
)
),
[2015-12-07] = array(
[date] => 2015-09-29,
[fully_book] => false,
[time] => array(
[0] => night
)
),
[2015-11-15] = array(
[date] => 2015-11-15,
[fully_book] => false,
[time] => array(
[0] => morning
)
)