locked
为什么listview的height设置为auto的时候,listview 不能滚动? RRS feed

  • 问题

  • <PivotItem Header="日志管理" Name="articleItem" SizeChanged="articleItem_SizeChanged"> <ListView ItemsSource="{Binding ArticleTypes}" BorderBrush="Red" Name="articleList" Height="auto"> <ListView.ItemTemplate> <DataTemplate> <Button Content="{Binding}" Margin="1" Width="300" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center"></Button> </DataTemplate> </ListView.ItemTemplate> </ListView> </PivotItem>

    2014年11月23日 3:25

答案

  • 你好,

    >>为什么listview的height设置为auto的时候,listview 不能滚动

    根据我的经验,如果你的Pivot 高度不是设置为Auto,是不会影响滚动的,比如如下的xaml:

    <Grid>
            <Pivot>
                <PivotItem  Header="日志管理" Name="articleItem">
                    <ListView ItemsSource="{Binding ArticleTypes}" BorderBrush="Red" Name="articleList" Height="auto">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Button Content="{Binding}" Margin="1" Width="300" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center"></Button>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </PivotItem>
                <PivotItem  Header="Item2">
                    
                </PivotItem>
            </Pivot>
        </Grid>

    截图:

    但是如果高度自动,这样PivotItem内的ListView就无法判断自身实际高度,因此当Item较多的时候,不会自动出现滚动条,从而阻止滚动。可以尝试以下的xaml,是无法滚动的:

    <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="auto" />
            </Grid.RowDefinitions>
            <TextBlock />
            <Pivot Grid.Row="1">
                <PivotItem  Header="日志管理" Name="articleItem">
                    <ListView ItemsSource="{Binding ArticleTypes}" BorderBrush="Red" Name="articleList" Height="auto">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Button Content="{Binding}" Margin="1" Width="300" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center"></Button>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </PivotItem>
                <PivotItem  Header="Item2">
                    
                </PivotItem>
            </Pivot>
        </Grid>

    所以请检查你的UI布局,避免Pivot的高度或者上层容器高度的不固定。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 DreamDays 2014年11月24日 4:20
    2014年11月24日 3:34
    版主

全部回复

  • 如果listview height 设置为固定值就可以 ,但是固定值很不灵活 ,有没有什么好的解决方法呢?
    2014年11月23日 6:35
  • 你好,

    >>为什么listview的height设置为auto的时候,listview 不能滚动

    根据我的经验,如果你的Pivot 高度不是设置为Auto,是不会影响滚动的,比如如下的xaml:

    <Grid>
            <Pivot>
                <PivotItem  Header="日志管理" Name="articleItem">
                    <ListView ItemsSource="{Binding ArticleTypes}" BorderBrush="Red" Name="articleList" Height="auto">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Button Content="{Binding}" Margin="1" Width="300" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center"></Button>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </PivotItem>
                <PivotItem  Header="Item2">
                    
                </PivotItem>
            </Pivot>
        </Grid>

    截图:

    但是如果高度自动,这样PivotItem内的ListView就无法判断自身实际高度,因此当Item较多的时候,不会自动出现滚动条,从而阻止滚动。可以尝试以下的xaml,是无法滚动的:

    <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="auto" />
            </Grid.RowDefinitions>
            <TextBlock />
            <Pivot Grid.Row="1">
                <PivotItem  Header="日志管理" Name="articleItem">
                    <ListView ItemsSource="{Binding ArticleTypes}" BorderBrush="Red" Name="articleList" Height="auto">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Button Content="{Binding}" Margin="1" Width="300" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center"></Button>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </PivotItem>
                <PivotItem  Header="Item2">
                    
                </PivotItem>
            </Pivot>
        </Grid>

    所以请检查你的UI布局,避免Pivot的高度或者上层容器高度的不固定。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 DreamDays 2014年11月24日 4:20
    2014年11月24日 3:34
    版主
  • 你好,

    >>为什么listview的height设置为auto的时候,listview 不能滚动

    根据我的经验,如果你的Pivot 高度不是设置为Auto,是不会影响滚动的,比如如下的xaml:

    <Grid>
            <Pivot>
                <PivotItem  Header="日志管理" Name="articleItem">
                    <ListView ItemsSource="{Binding ArticleTypes}" BorderBrush="Red" Name="articleList" Height="auto">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Button Content="{Binding}" Margin="1" Width="300" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center"></Button>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </PivotItem>
                <PivotItem  Header="Item2">
                    
                </PivotItem>
            </Pivot>
        </Grid>

    截图:

    但是如果高度自动,这样PivotItem内的ListView就无法判断自身实际高度,因此当Item较多的时候,不会自动出现滚动条,从而阻止滚动。可以尝试以下的xaml,是无法滚动的:

    <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="auto" />
            </Grid.RowDefinitions>
            <TextBlock />
            <Pivot Grid.Row="1">
                <PivotItem  Header="日志管理" Name="articleItem">
                    <ListView ItemsSource="{Binding ArticleTypes}" BorderBrush="Red" Name="articleList" Height="auto">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Button Content="{Binding}" Margin="1" Width="300" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center"></Button>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </PivotItem>
                <PivotItem  Header="Item2">
                    
                </PivotItem>
            </Pivot>
        </Grid>

    所以请检查你的UI布局,避免Pivot的高度或者上层容器高度的不固定。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    谢谢耐心解答
    2014年11月24日 4:21