如何在3个屏幕上显示全景项目中的大型按钮网格



我制作了一个包含多行和多列的非常宽的网格,并用按钮填充网格(没有垂直滚动)。所有这些都包含在一个全景项目中。在水平滚动中需要大约3个屏幕宽度来覆盖整个网格(大约1500像素宽)。

因此,问题是当用户在全景中轻弹屏幕时,它会从全景项目的开始一直跳到它的结束。因此,有效地说,只有网格的最左侧和最右侧对用户可用(只有当他滚动得很慢时,他才能看到中间的其余内容)。

理想情况下,我会有三个全景项目,内容重叠在所有项目上,所以可以用两次轻弹来查看内容,但我无法做到这一点。是否可以在3个全景项目上重叠网格?或者,有没有可能以某种方式在中间添加某种停止,或者分割我目前拥有的一个全景项目,使屏幕停止在中间的某个位置?

我找不到任何超过2个屏幕的例子,而且包装对我来说不起作用——我想要一个固定的高度,我不能让按钮的宽度变小。不管怎样,我甚至不知道这一切有可能实现吗?也许我过度强调了全景功能。。。

谢谢

编辑:

这将是我的问题的一个例子(我有100多个按钮,所以xaml代码很大,但这与我试图解决的基本问题相同):

<controls:PanoramaItem Header="first item" Orientation="Horizontal">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="500" />
                    <ColumnDefinition Width="500" />
                    <ColumnDefinition Width="500" />
                </Grid.ColumnDefinitions>
                <Button Grid.Row="0"
                        Grid.Column="0"
                        Width="250"
                        Height="250"
                        Content="Button1" />
                <Button Grid.Row="0"
                        Grid.Column="1"
                        Width="250"
                        Height="250"
                        Content="Button2" />
                <Button Grid.Row="0"
                        Grid.Column="2"
                        Width="250"
                        Height="250"
                        Content="Button3" />
            </Grid>             
        </controls:PanoramaItem>

所以,如果你把它放在你的全景控制中,你会得到一个非常宽的全景项目,如果你从按钮1轻弹它,它会一直跳到按钮3的最右边,所以它会滚动你经过按钮2……我希望它停止在按钮2上滚动。

您可能需要研究将PanoramaItem的Orientation属性设置为Horizontal,这应该会产生您想要的效果:-

            <controls:PanoramaItem Header="first item" Orientation="Horizontal">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Button Grid.Row="0"
                        Grid.Column="0"
                        Width="250"
                        Height="250"
                        Content="Button1" />
                <Button Grid.Row="0"
                        Grid.Column="1"
                        Width="250"
                        Height="250"
                        Content="Button2" />
                <Button Grid.Row="0"
                        Grid.Column="2"
                        Width="250"
                        Height="250"
                        Content="Button3" />
            </Grid>             
        </controls:PanoramaItem>

希望这能有所帮助。

Paul Diston

好吧,我对这个问题进行了研究,答案是我确实过度强调了全景项目的能力。

因此,如果有人想实现我试图实现的目标,即让一个全景项目延伸到3个屏幕宽度上,最好的方法是制作3个单独的全景项目,并尝试手动设置每个项目的边距,这样用户就感觉自己在浏览同一个全景项(从一个无缝切换到另一个)。

换句话说,一个全景项目被优化为最大2个屏幕宽度,这将是我的答案。任何超过2个屏幕的东西,你都会失去轻弹手势的行为,所以你会失去在中间的内容。

最新更新