2

ですから、私は助けが必要なコーディングの問題を抱えており、簡単に言えば、これで何をしているのかわかりません。参考までに、ジェスチャーリスナーでツールキットを使用していません。

BigImageCenter、BigImageLeft、BigImageRightの3つのパノラマアイテムを含むパノラマページがあります。

私のアプリケーションには、アプリと一緒にダウンロードされる画像の束があります。このパノラマページの目標は、ページの下部にスクロールビューアを設定して、アプリに付属する画像のリスト全体を小さなサムネイルで表示し、ページの上部をパノラマアイテムにすることです。画像を左または右にフリックすると、リストが整然と進みます(または左にフリックした場合は戻ります)。

また、下部のスクロールビューアでサムネイルの1つをタップすると、現在のパノラマ画像がそのサムネイル画像に置き換えられます。パノラマページを左または右にフリックすると、そのサムネイル画像の配列に-1または+1が表示されます。

ページに最初に表示される画像はBigImageCenterです。

3つのパノラマアイテムを使用する必要はなく、1つで解決できる可能性があります。ただし、1つでテストする場合は、サムネイルをクリックしてパノラマを左右にスワイプして画像を変更した後、次の画面に読み込まれる画像は、変更される前は常に同じ画像です(次の画像を動的に変更するための配列をコーディングしていないため、意味があります)。

ただし、次のいずれかを実行する方法がわかりません。

1)パノラマアイテムの最初の画像がXに設定されている配列を作成します。2)ユーザーが配列の-1または+1に左または右にフリックしたかどうかを確認します。3)サムネイル画像を設定して、現在のパノラマ画像を置き換えます。タップしてから、配列をそのサムネイル画像の位置にスローします。

パノラマコントロールとサムネイルスクロールビューアの両方のXAMLは次のとおりです。

<Grid x:Name="ControlPanel" Grid.Row="1" Margin="-8,-22,-49,90">
        <controls:Panorama Name="Image_Panorama" Height="auto" Width="auto">
            <!--Panorama item one-->
            <controls:PanoramaItem>
                <Rectangle Height="auto" Width="auto" x:Name="BigImageCenter">
                    <Rectangle.Fill>
                        <ImageBrush ImageSource="image030.jpg" />
                    </Rectangle.Fill>
                </Rectangle>
            </controls:PanoramaItem>

            <controls:PanoramaItem>
                <Rectangle Height="auto" Width="auto" x:Name="BigImageLeft">
                    <Rectangle.Fill>
                        <ImageBrush ImageSource="pics/image002.jpg" />
                    </Rectangle.Fill>
                </Rectangle>
            </controls:PanoramaItem>


            <controls:PanoramaItem>
                <Rectangle Height="auto" Width="auto" x:Name="BigImageRight">
                    <Rectangle.Fill>
                        <ImageBrush ImageSource="pics/image003.jpg" />
                    </Rectangle.Fill>
                </Rectangle>
            </controls:PanoramaItem>


        </controls:Panorama>     
    </Grid>



<Grid x:Name="MiniPicturePanel" Grid.Row="1" Margin="0,390,0,0">
 <ScrollViewer x:Name="svSmall" Grid.Row="1" HorizontalContentAlignment="Center">
  <StackPanel x:Name="smallImages" Orientation="Horizontal" VerticalAlignment="Bottom" Margin="330,0,0,0">

     <Rectangle Height="70" Width="110" Margin="0,0,30,0" StrokeThickness="3" MouseLeftButtonUp="smallImage_Tap" Stroke="#FF004080" x:Name="Bat1">
                    <Rectangle.Fill>
                        <ImageBrush ImageSource="image030.jpg" />
                    </Rectangle.Fill>
                </Rectangle>


     <Rectangle Height="70" Width="110" Margin="0,0,30,0" StrokeThickness="3" MouseLeftButtonUp="smallImage_Tap" Stroke="#FF004080" x:Name="Bat2">
                    <Rectangle.Fill>
                        <ImageBrush ImageSource="pics\image002.jpg" />
                    </Rectangle.Fill>
                </Rectangle>

....など

今、私はいくつかのことをしましたが、私が望む方法ではありません:

MouseLeftButtonUp = "smallImage_Tap"は、「BigImageCenter」のパノラマアイテムを長方形の現在のimage.fillに変更する関数です。ビュー内の現在のピボットアイテムを変更するようにコーディングすることはできません。それについて助けが必要です。

private void smallImage_Tap(object sender, RoutedEventArgs e) {
    BigImageCenter.Fill = (sender as Rectangle).Fill;

なぜ長方形を使用しているのか疑問に思われるかもしれませんが、小さいサムネイルをタップするときに、コードを後ろに置いて画像を変更するのが最も簡単な方法でした。

そして、それはほとんど私のコードビハインドです。私は文字通りこの動的コーディングをゼロから行っており、この夢を実現するためにいくつかの助けが必要です。

PS:ユーザーが画像を「お気に入り」にして別のページに配置できるように、画像に関連付けられている配列番号も知っておく必要があります。

4

1 に答える 1

0

これにより、認証が機能したとしても、認証に問題が生じると思います(私があなたを正しく理解していると仮定します)。これは、パノラマの非標準的な使用法です。

より良い解決策は、ジェスチャーを使用して完全にカスタム コントロールを作成することだと思います。それほど難しくなく、プレゼンテーションを完全に制御できます。パノラマをハックしてやりたいことをするよりも、これを行う方がはるかに簡単です。

がんばれ、ジョン

于 2011-07-20T13:14:08.420 に答える