首页 > 解决方案 > 如何在 Xamarin 表单中延迟几秒随机图像并显示到 XAML 中?

问题描述

我想随机图像并在几秒钟内以 xamarin 形式实现延迟。

这是我的 XAML 代码

<Image x:Name="RandomImageList" Source="Album1.jpg">

这是我的 C# 代码

List<string> imageList = new List<string> { "Album1.jpg", "Album2.jpg", "Album3.jpg" };

        var random = new Random();
        var next = random.Next(4);
        var image = imageList[next];

        RandomImageList.Source = ImageSource.FromResource(image);

这是我运行此代码期间的结果。

*System.Reflection.TargetInvocationException: '调用的目标已抛出异常。' *

标签: xamarinxamarin.forms

解决方案


这很简单,只要这样做。

public MainPage()
{
    InitializeComponent();

    List<string> imageList = new List<string> { "add.png", "compare.png", "down.png", "remove.png" };

    Device.BeginInvokeOnMainThread(async () =>
    {
        while (true)
        {
            var random = new Random();
            var next = random.Next(4);
            var image = imageList[next];
            await Task.Delay(2000);

            RandomImage.Source = ImageSource.FromFile(image);
        }
    });
}

输出:

在此处输入图像描述


推荐阅读