c#Listview不滚动,因为它在屏幕外

时间:2015-08-29 16:06:36

标签: c# xaml listview windows-phone-8.1

到目前为止,我试图制作一款Windows手机应用程序,除了我曾经遇到的一个非常烦人的问题,我已经研究了几天,并尝试了我能想到的一切。

我的布局是:我有

  • 1个主要父网格,3个子网格1左1中1右,
  • 左侧网格的左边距为-480,因此在左侧不可见 屏幕,
  • 右边距的右边距为-370,因此在边缘不可见 屏幕,
  • 我正在使用grid.projection所以当我按下左边的按钮时 网格幻灯片

我使用了本指南http://depblog.weblogs.us/2013/07/22/facebook-like-settings-pane-windows-phone/

在中间网格和左侧网格中都有一个列表视图,中间列表视图在左侧滚动而不向左滚动。如果我从左侧网格中仅删除-480边距,则左侧列表视图将滚动。 所以我的问题是,一旦列表视图离开屏幕,它就会停止滚动,即使在回叫查看时也会停止滚动

请帮忙, 感谢

这是我描述的网格图 http://i.imgur.com/FzPDC6r.jpg

UPDATE **

如果我将左边网格的边距设置为360,那么当视图位于中心网格上时,列表会滚动中心网格,但当我将视图切换到左边网格时,它会停止滚动

1 个答案:

答案 0 :(得分:1)

  <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid x:Name="MenuGrid" Grid.Column="0">
                    <Canvas x:Name="MainCanvas">
                        <Canvas.Resources>
                            <Storyboard x:Name="OpenAnimation">
                                <DoubleAnimation Duration="0:0:0.5" To="300"
                                                 Storyboard.TargetProperty="(Canvas.Left)"
                                                 Storyboard.TargetName="canvas"/>
                            </Storyboard>
                            <Storyboard x:Name="CloseAnimation">
                                <DoubleAnimation Duration="0:0:0.4" To="0"
                                                 Storyboard.TargetProperty="(Canvas.Left)"
                                                 Storyboard.TargetName="canvas"/>
                            </Storyboard>
                        </Canvas.Resources>
                        <Canvas x:Name="canvas">
                            <Grid Background="White"
                                  Margin="0 0 0 30"
                                  Height="800"
                                  Canvas.Left="-300">
                                <ListView x:Name="TestListView"
                                          Visibility="Visible"
                                          SelectionMode="Single"
                                          ItemTemplate="{StaticResource HomeListViewTemplate}"
                                          ItemsSource="{Binding}"/>
                            </Grid>
                        </Canvas>
                    </Canvas>
                </Grid>
            </Grid>

你能试试吗? ListView通常在它是主屏幕时,它的父控件的高度就像网格一样。但是当它脱离视野时它没有一定的高度。 ScrollViewer,Listview等控件除非具有固定高度,否则不会滚动。因此,请尝试在XAML或代码中设置高度。