0

複数の行と列を持つ非常に幅の広いグリッドを作成し、グリッドをボタンで埋めました(垂直スクロールはありません)。すべてが1つのパノラマアイテムに含まれています。約 水平スクロール(幅約1500ピクセル)でグリッド全体をカバーするには、3つの画面幅が必要です。

したがって、問題は、ユーザーがパノラマで画面をフリックすると、パノラマアイテムの最初から最後までジャンプすることです。したがって、事実上、グリッドの左端と右端のみをユーザーが使用できます(スクロールが非常に遅い場合にのみ、中央の残りのコンテンツにアクセスできます)。

理想的には、3つのパノラマアイテムがあり、それらすべてにコンテンツが重なっているので、コンテンツは2回のフリックで表示できますが、それは実現できません。3つのパノラマアイテムにグリッドを重ねることはできますか?あるいは、どういうわけか途中で停止を追加したり、現在持っている1つのパノラマアイテムを分割して、画面が途中で停止するようにすることは可能ですか?

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>

So if you put this into your panorama control - you get a very wide panorama item - and if you flick it from Button1 it jumps all the way to the far right on the Button3 - so it scrolls you past the Button2... I want it to stop scrolling on the Button2.

4

2 に答える 2

0

OK、私はこの問題について調査しました。その答えは、私が実際にパノラマ アイテムの機能を拡張しすぎていたということです。

したがって、私が達成しようとしていたことを達成したい場合-つまり、1つのパノラマアイテムを3つの画面幅に広げることです-最善の方法は、3つの別々のパノラマアイテムを作成し、それぞれの余白を設定することです1 つは手動で、ユーザーは 1 つの同じパノラマ アイテムをブラウズしているように感じます (あるアイテムから別のアイテムへとシームレスに切り替えます)。

つまり、1 つのパノラマ アイテムが最大 2 つの画面幅に最適化されており、それが私の答えです。2 画面を超えると、フリック ジェスチャの動作が失われるため、途中でそのコンテンツが失われます。

于 2012-03-29T06:04:29.487 に答える
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>

お役に立てれば。

ポール・ディストン

于 2012-03-19T17:20:24.373 に答える