我FlipView
在使用之前实现的捏缩放功能时遇到问题FlipView
。在我实现之前,FlipView
我只加载了单个Image
并让用户使用两个按钮来更改它。它对用户不是很友好,所以我决定使用 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
和其他一些解决方案,但我真的不知道它应该如何工作。谁能帮我?:)