在Windows RT应用程序中每n秒刷新一张网页图片

本文关键字:一张 网页 刷新 应用程序 RT Windows | 更新日期: 2023-09-27 17:50:56

我在VisualStudio中选择了一个样本,并开始修改它,用来自网络摄像头的图片创建一个交通应用程序(假设每10秒更新一次)。我有一个SampleData。

{"Groups":[
  {
    "UniqueId": "Group-1",
    "Title": "Primorska in Notranjska",
    "Subtitle": "Group subtitle: 1",
    "ImagePath": "Assets/Pics/primorska.jpg",
    "Description" : "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante",
    "Items":
    [
      {
        "UniqueId": "Group-1-Item-1",
        "Title": "A1/E61/E70 Ljubljana - Koper, priključek Brezovica",
        "Subtitle": "Item Subtitle: 1",
        "ImagePath": "Assets/LightGray.png",
        "Description" : "",
        "Content" : "A1/E61/E70 Ljubljana - Koper, priključek Brezovica, pogled proti Postojni",
        "PicSource" : "http://kamere.dars.si/kamere/ljubljana/K01_Brezovica_Po.jpg"
      },

然后我将图片绑定到每一个项目:

<Image Source="{Binding PicSource}" Grid.Row="2" Margin="0,88,440,10" 
       Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}" Grid.ColumnSpan="2"/>

如何每n秒刷新一次?

编辑:我在SampleDataSource中设置ViewModel:
        public SampleDataItem(String uniqueId, String title, String subtitle, String imagePath, String description, String content, String picSource)
    {
        this.UniqueId = uniqueId;
        this.Title = title;
        this.Subtitle = subtitle;
        this.Description = description;
        this.ImagePath = imagePath;
        this.Content = content;
        this.PicSource = picSource;
    }

. .公共字符串PicSource {get;私人设置;}后来. .GetSampleDataAsync(){如果(this._groups。Count != 0)返回;

        Uri dataUri = new Uri("ms-appx:///DataModel/SampleData.json");
        StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
        string jsonText = await FileIO.ReadTextAsync(file);
        JsonObject jsonObject = JsonObject.Parse(jsonText);
        JsonArray jsonArray = jsonObject["Groups"].GetArray();
        foreach (JsonValue groupValue in jsonArray)
        {
            JsonObject groupObject = groupValue.GetObject();
            SampleDataGroup group = new SampleDataGroup(groupObject["UniqueId"].GetString(),
                                                        groupObject["Title"].GetString(),
                                                        groupObject["Subtitle"].GetString(),
                                                        groupObject["ImagePath"].GetString(),
                                                        groupObject["Description"].GetString());
            foreach (JsonValue itemValue in groupObject["Items"].GetArray())
            {
                JsonObject itemObject = itemValue.GetObject();
                group.Items.Add(new SampleDataItem(itemObject["UniqueId"].GetString(),
                                                   itemObject["Title"].GetString(),
                                                   itemObject["Subtitle"].GetString(),
                                                   itemObject["ImagePath"].GetString(),
                                                   itemObject["Description"].GetString(),
                                                   itemObject["Content"].GetString(),
                                                   itemObject["PicSource"].GetString()));
            }
            this.Groups.Add(group);
        }
    }

在Windows RT应用程序中每n秒刷新一张网页图片

您可以从代码中设置源代码:

public MainPage()
{
    this.InitializeComponent();
    DispatcherTimer timer = new DispatcherTimer();
    timer.Interval = TimeSpan.FromSeconds(n);
    timer.Tick += (sender, e) =>
    {
        //  ...
        //  image.Source = ...
    };
    timer.Start();           
}