C# 在Windows RT应用程序中每n秒刷新一次web图片
我在VisualStudio中选取了一个示例,并开始对其进行修改,以创建一个包含网络摄像头图片的流量应用程序(假设每10秒更新一次)。我有一个SampleData.json文件,其中包含以下示例项C# 在Windows RT应用程序中每n秒刷新一次web图片,c#,windows-8,C#,Windows 8,我在VisualStudio中选取了一个示例,并开始对其进行修改,以创建一个包含网络摄像头图片的流量应用程序(假设每10秒更新一次)。我有一个SampleData.json文件,其中包含以下示例项 {"Groups":[ { "UniqueId": "Group-1", "Title": "Primorska in Notranjska", "Subtitle": "Group subtitle: 1", "ImagePath": "Assets/Pics/p
{"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"/>
……以后
公共字符串PicSource{get;private set;}
……以后
专用异步任务GetSampleDataAsync()
{
如果(this.\u 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);
}
}
您可以通过以下代码设置源代码:
public MainPage()
{
this.InitializeComponent();
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(n);
timer.Tick += (sender, e) =>
{
// ...
// image.Source = ...
};
timer.Start();
}
如何以与XAML相同的方式绑定照片?如果
PicSource
是MVVM属性,则只需更改它的值,它就会反映在图像中。此代码正确吗:'image image=new image();image.Source=(“{Binding PicSource}”)'我收到一个错误。@Skynet,您试图将XAML语法与C#相结合。Xyroid的意思是,PicSource是ViewModel中某个位置的对象。如果您更新PicSource,并且MVVM正确,它将自动更新UI。PicSource必须使用新值(新图片的来源)进行更改@哦,对不起,我用更多的信息更新了这篇文章。
public MainPage()
{
this.InitializeComponent();
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(n);
timer.Tick += (sender, e) =>
{
// ...
// image.Source = ...
};
timer.Start();
}