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

时间:2012-03-19 07:44:46

标签: windows-phone-7 windows-phone-7.1 panorama-control

我做了一个有很多行和列的非常宽的网格,我用网格填充了网格(没有垂直滚动)。所有内容都包含在一个全景项中。约。在水平滚动(约1500像素宽)中覆盖整个网格需要3个屏幕宽度。

所以问题是当用户在全景图中轻弹屏幕时 - 它会从全景图项目的开头一直跳到它的结尾。因此,有效地只有网格的最左侧和最右侧可供用户使用(只有当他滚动得非常慢时,他才能到达中间的其余内容)。

理想情况下,我会有三个全景项目,内容与所有内容重叠 - 所以内容可以用两个电影观看 - 但我无法实现。是否可以在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>

因此,如果你把它放到你的全景控制中 - 你得到一个非常宽的全景项目 - 如果你从Button1轻弹它,它一直跳到Button3的最右边 - 所以它滚动你经过Button2 ..我想让它停止在Button2上滚动。

2 个答案:

答案 0 :(得分:0)

您可能需要调查为PanoramaItem设置Orientation属性为Horizo​​ntal,它应该产生您正在寻找的效果: -

            <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

答案 1 :(得分:0)

好的,我对这个问题进行了研究,答案是我真的过度追求全景项目的能力。

所以,如果有人希望实现我想要实现的目标 - 即让一个全景项目延伸超过3个屏幕宽度 - 最好的方法是制作3个单独的全景项目并尝试设置每个人的边距都是手动的,因此用户感觉他正在浏览同一个全景项目(无缝地从一个切换到另一个)。

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