如何从本地路径清除图像控制

时间:2015-03-06 20:38:34

标签: c# wpf

我在wpf中有像这样的图像控件

<Image x:Name="Img" Source="{Binding IsAsync=True}" />

我通过从这样的网址中提取来设置图像

  Img.DataContext = ImageUrl;

它显示正常,当我想清除它时我只是使用

 Img.DataContext=null;

对于同一个控件我也有一个浏览按钮,从本地路径中选择图像

 BitmapImage image = new BitmapImage(new Uri(path));
 Img.Source=image;

现在我想清楚这一点,所以

 Img.Source=null;

之后,控件不会显示来自url的图像,只能打开本地图像

编辑:可能我需要在将source设为null后再次设置绑定,不知道该怎么做

2 个答案:

答案 0 :(得分:1)

你正在滥用绑定可怕的。请停止。

<Image x:Name="Img" Source="{Binding IsAsync=True}" />

说“绑定到数据上下文”,这并不是那么好。绑定到视图模型的属性,例如:

<Image x:Name="Img" Source="{Binding Path=ImageLocation, IsAsync=True}" />

然后只能使用ImageLocation 更改图片。至少,只能通过DataContext设置它。

将源设置为绑定后,永远不会通过代码隐藏来更改它。的期间即可。这样做,你的问题将“神奇地”消失,因为你正在以正确的方式做到这一点。

答案 1 :(得分:0)

要清除图像控件,请清除图像URL。

e.g imgControlName.ImageUrl = "";