【发布时间】:2017-07-03 10:02:47
【问题描述】:
我有一个自定义 UserControl,其中包含一个 Image 控件。我正在尝试从 web [网络服务器] 获取图像并将其显示在我的控件中,并使用调度程序计时器刷新源。代码如下:
void StartSourceRefresh()
{
if (timeinterval < 1) timeinterval = 1;
tmrRefresh.Tick += new EventHandler(dispatcherTimer_Tick);
tmrRefresh.Interval = new TimeSpan(0, 0, timeinterval); //in hour-minute-second
tmrRefresh.Start();
}
public void ChangeImageSource(string newSource)
{
//newSource = "http://192.168.1.3/abc/imagetobeshown.png"
WebImg.Source = null;
if (newSource.Trim() == "")
WebImg.Source = new BitmapImage(new Uri(@imagePlaceholder, UriKind.Absolute));
else
{
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri(@newSource, UriKind.Absolute);
image.EndInit();
WebImg.Source = image;
}
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
ChangeImageSource(txtImgSrc.Text.Trim());
}
问题是图像不会改变。它显示与第一次获取的相同。定时器运行良好。但图像不会改变。我在这里做错了什么?
编辑:网络源在一定间隔后刷新,因此必须获取相同的源
【问题讨论】: