我正在尝试使用C# xamarin forms android中的ImageButtons进行水平移动。
我的应用程序如下所示:
如果可能的话,我想使用这些ImageButton进行水平移动。我想触摸ImageButton并浏览代码动态生成的每个StackLayout。但我不知道如何才能做到这一点。我将让代码在这里:
代码页.xaml:
<AbsoluteLayout>
<ScrollView HorizontalScrollBarVisibility="Never" Orientation="Horizontal" HorizontalOptions="Center">
<StackLayout x:Name="imgs" Orientation="Horizontal" HorizontalOptions="Center">
</StackLayout>
</ScrollView>
<ImageButton x:Name="btnLeft" Clicked="btnMoveLeft" Source="drawable/left.png" WidthRequest="50" HeightRequest="50" AbsoluteLayout.LayoutBounds="0.009,0.5,100,100" AbsoluteLayout.LayoutFlags="PositionProportional"></ImageButton>
<ImageButton x:Name="btnRight" Clicked="btnMoveRight" Source="drawable/right.png" WidthRequest="50" HeightRequest="50" AbsoluteLayout.LayoutBounds="0.95,0.5,100,100" AbsoluteLayout.LayoutFlags="PositionProportional"></ImageButton>
</AbsoluteLayout>
代码页. xaml.cs:
private void btnMoveLeft(object sender, EventArgs e)
{
}
private void btnMoveRight(object sender, EventArgs e)
{
}
public void generateImg(MediaFile file2)
{
StackLayout stackLayout = new StackLayout();
stackLayout.Orientation = StackOrientation.Vertical;
StackLayout stackLayoutMinimo = new StackLayout();
Image im = new Image();
im.ClassId = contador.ToString();
im.Source = ImageSource.FromFile(file2.Path);
im.HeightRequest = 600;
im.WidthRequest = 400;
im.MinimumHeightRequest = 600;
im.MinimumWidthRequest = 400;
im.VerticalOptions = LayoutOptions.End;
im.HorizontalOptions = LayoutOptions.End;
im.Aspect = Aspect.AspectFill;
stackLayout.Children.Add(im);
Button deleteButton = new Button();
deleteButton.ClassId = contador.ToString();
deleteButton.Text = "Borrar imagen";
deleteButton.VerticalOptions = LayoutOptions.CenterAndExpand;
deleteButton.HorizontalOptions = LayoutOptions.Center;
deleteButton.MinimumWidthRequest = 100;
deleteButton.ClassId = contador.ToString();
deleteButton.AutomationId = contador.ToString();
deleteButton.Clicked += async (sender, args) => {
listDelete.Add(Convert.ToInt32(deleteButton.ClassId));
stackLayout.Children.Remove(im);
stackLayout.Children.Remove(deleteButton);
};
stackLayout.Children.Add(deleteButton);
imgs.Children.Add(stackLayout);
}
我希望有人能指导我。非常感谢!
2条答案
按热度按时间drkbr07n1#
正如杰森所说,
CarouselView
比ScrollView
更适合你的情况。我用
CarouselView
做了一个演示,你可以参考一下。下面是Mainpage.Xaml中的代码:
下面是Mainpage.xaml.cs中的代码:
下面是MyViewModel.cs中的代码,您可以向其中添加数据:
下面是Photo.cs中的代码:
ryhaxcpt2#
解决方案
最后,我用了一个 CarouselView,它运行得很好。用这个代码我解决了我的问题。我把我的代码留在这里。也许它能帮助别人。
代码页.xaml:
代码页. xaml.cs:
当然,最后我需要这行代码来设置Page.xaml.cs中的图像: