FlipView
を使用する前に実装したピンチズーム機能の使用に問題がありFlipView
ます。実装する前に、FlipView
シングルをロードImage
して、ユーザーが 2 つのボタンを使用して変更できるようにしました。あまりユーザーフレンドリーではなかったので、FlipView のスワイプ機能を使用することにしました。私はなんとか実装FlipView
し、うまく動作しました。コードのサンプルは次のとおりです。
private void downloadImage(int position)
{
MyWebClient wc;
wc = new MyWebClient(); //I just added int actualDownloadedImagePosition field to know loading of which image has finished
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
String url;
wc.actualDownloadedImagePosition = position;
url = URL+position+".jpg";
wc.OpenReadAsync(new Uri(url), wc);
}
private void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null && !e.Cancelled)
{
try
{
BitmapImage image = new BitmapImage();
image.SetSource(e.Result);
Image im = new Image();
im.Source=image;
int pos = (((MyWebClient)sender).actualDownloadedImagePosition);
flip.Items.Insert(pos-1, im); //Is this BTW right solution?
}
catch (Exception ex)
{
}
}
}
downloadImage()
最初の画像の開始時に実行され、他の画像は後でダウンロードされます (ユーザーがそれらをスワイプしたとき)。
FlipView を使用していないときは、このコードを XAML で使用できました (もちろん、.cs
ファイル内の適切なコードも使用できました)。
<Image
Name="foto"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Margin="0,40,0,20"
RenderTransformOrigin="0,0"
Height="800"
Stretch="Uniform"
>
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener
PinchStarted="OnPinchStarted"
PinchDelta="OnPinchDelta"
DragDelta="OnDragDelta"
DoubleTap="OnDoubleTap"/>
</toolkit:GestureService.GestureListener>
<Image.RenderTransform>
<CompositeTransform
ScaleX="1" ScaleY="1"
TranslateX="0" TranslateY="0"/>
</Image.RenderTransform>
</Image>
しかし、今はそれを正しくする方法がわかりません。および他のいくつかのソリューションを使用ItemTemplate
してみましたが、どのように機能するのか本当にわかりません。誰でも私を助けることができますか?:)