public partial class MainPage : ContentPage { public MainPage() { AbsoluteLayout AbsoluteLayout = new AbsoluteLayout { Margin = new Thickness(20) }; new Thread(new ThreadStart(async () => { while (true) { Application.Current.Dispatcher.Dispatch(async () => { //获取AbsoluteLayout的子元素集合 var children = AbsoluteLayout.Children; //遍历子元素集合,将每个子元素从AbsoluteLayout中移除 while (children.Count > 0) { absoluteLayout.Children.Remove(children[0]); } //创建一个Random对象用于生成随机颜色 Random random = new Random();创建一个 List<Task>用于存放旋转任务 List<Task> tasks = new List<Task>();for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { //生成一个随机颜色 Color color = Color.FromRgb(random.下一个(256),随机。下一个(256),随机。下一页(256));创建一个BoxView对象并设置颜色和圆角 BoxView boxView = new BoxView { 颜色 = 颜色, 角半径 = 10 };将BoxView对象添加到AbsoluteLayout中,并设置布局标志为None Add(AbsoluteLayout, boxView, new Rect(60 * i, 60 * j, 50, 50), AbsoluteLayoutFlags.None);把BoxView的旋转任务添加到List<Task>中 tasks.Add(boxView.RelScaleTo(1, 3000));任务。Add(boxView.RelScaleTo(-1, 3000));} } //等待所有旋转任务完成 await Task.WhenAll(tasks);});等待一秒钟 await Task.Delay(6000);} })).开始();内容 = 绝对布局;初始化组件();} public void Add(AbsoluteLayout AbsoluteLayout, IView view, Rect rect, AbsoluteLayoutFlags flags) { if (view == null) 抛出新的 ArgumentNullException(nameof(view)); absoluteLayout.Add(view); absoluteLayout.SetLayoutBounds(view, rect); absoluteLayout.SetLayoutFlags(view, flags); } }他只执行了缩小没执行放大
时间: 2023-07-15 20:14:46 浏览: 143
grad_new.rar_NEW_gradient decent
根据你提供的代码,我看到你在创建 BoxView 对象后,将其添加到了 AbsoluteLayout 中,并使用了 `RelScaleTo` 方法添加了缩放动画任务。但是,我没有看到任何代码执行放大操作。在你的代码中,你只添加了将 BoxView 缩小的任务,因此只有缩小动画被执行了。
如果你想要添加放大动画任务,你可以在 `for` 循环中添加以下代码:
```csharp
tasks.Add(boxView.RelScaleTo(2, 3000)); // 将 BoxView 放大两倍
tasks.Add(boxView.RelScaleTo(0.5, 3000)); // 将 BoxView 缩小到原来的一半
```
这样,每个 BoxView 对象都会执行放大和缩小的动画任务。希望这可以帮助你解决问题。
阅读全文