【问题标题】:How to create a scrollable listview inside a pivot control on Windows Phone 8.1如何在 Windows Phone 8.1 上的枢轴控件内创建可滚动列表视图
【发布时间】:2015-10-26 09:18:26
【问题描述】:

这就是我想要达到的:创建一个适合手机屏幕的网格。网格中的两个控件,一个标题堆栈面板和一个填充屏幕剩余空间的枢轴控件。在枢轴控件中,我想显示其他三个控件。具有全高(始终可见)的标题堆栈面板,具有全高(始终可见)的按钮容器以及前两个控件之间的可滚动列表视图,它填充了枢轴项中的剩余空间。我试过了,但是如果我将列表视图的高度设置为星形字符,它会填充标题后的全部剩余空间,我看不到下面的按钮并且列表视图不可滚动。当我设置列表视图高度 fe。到 200 它按我接受的方式工作,按钮在列表视图下方可见,并且列表视图是可滚动的。但我不想设置任何硬编码的高度,那么我应该怎么做才能通过动态高度设置达到这种行为? 我尽可能地简化了我的 xaml 来举个例子。此示例按我的意愿工作,但我想将列表视图(200)的固定高度替换为动态值(*)以显示具有最大高度的列表视图并将其保持为可滚动控件:

<Grid x:Name="LayoutRoot">
    <Grid.ChildrenTransitions>
        <TransitionCollection>
            <EntranceThemeTransition/>
        </TransitionCollection>
    </Grid.ChildrenTransitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel Grid.Row="0" Margin="19,0,0,0">
            <TextBlock x:Uid="Header" Name="pageTitle" Text="TITLE" Style="{ThemeResource TitleTextBlockStyle}" Margin="0,2,0,0" Width="243" />
        </StackPanel>

    <Pivot x:Name="myPivot" Grid.Row="1" Margin="-10,0,-10,0" x:FieldModifier="public">
        <PivotItem x:Name="pivot_item1">
            <PivotItem.Header>
                <Grid >
                    <TextBlock Text="Header1"/>
                </Grid>
            </PivotItem.Header>
            <StackPanel>
                <Grid x:Name="PivotRoot">
                    <Grid.ChildrenTransitions>
                        <TransitionCollection>
                            <EntranceThemeTransition/>
                        </TransitionCollection>
                    </Grid.ChildrenTransitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="200"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>

                    <StackPanel Grid.Row="0" Margin="19,0,0,0">
                        <TextBlock x:Uid="PivotHeader"  Text="PivotHeader" Margin="0,2,0,0" Width="243" />
                    </StackPanel>

                    <ListView x:Name="DataListView" Grid.Row="1"  Margin="10,10,10,0" VerticalAlignment="Top" HorizontalAlignment="Stretch" x:FieldModifier="public">
                    </ListView>


                    <StackPanel Grid.Row="2" Margin="19,0,0,0">
                        <TextBlock x:Uid="PivotButtons"  Text="PivotButtons" Margin="0,2,0,0" Width="243" />
                    </StackPanel>

                </Grid>

            </StackPanel>
        </PivotItem>
        <PivotItem x:Name="pivot_item2" >
            <PivotItem.Header>
                <Grid >
                    <TextBlock Text="Header2"/>
                </Grid>
            </PivotItem.Header>
            <StackPanel>
                <TextBlock Text="page2"></TextBlock>
            </StackPanel>
        </PivotItem>
    </Pivot>
</Grid

【问题讨论】:

  • 您是否尝试在滚动条内设置列表视图?
  • 我试过 ScrollViewer 它没有帮助。我可能犯了一个错误,你能举个例子吗?
  • 你应该设置滚动的高度
  • 好的,但它又是一个常量值 (250),这种行为也无需滚动即可达到。我想要一个可滚动的列表视图,它的高度会自动设置为最大可用大小。 Fe.:屏幕高度为 400 像素。如果其他控件的总高度为 150,则列表视图的高度必须动态设置为 250。我可以通过使用 3 列定义并将它们的高度设置为:auto、*、auto 来使用网格达到此行为。但它似乎不适用于枢轴控件。

标签: windows-phone-8.1 winrt-xaml


【解决方案1】:

好的,我在这个链接上找到了答案: https://social.msdn.microsoft.com/Forums/windowsapps/en-US/03a47c3d-334e-45fb-825b-cf7c7a347ca8/scrolling-down-not-working-in-listview-inside-pivot-item-wp-81?forum=wpdevelop 解决方案是简单地从 Pivot 控件中删除不必要的 StackPanel。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    相关资源
    最近更新 更多