c# - 图像不会改变 - WPF
问题描述
我正在尝试在运行时更改图像,但它不起作用。我有一个用户控件,当您单击 imagebtn 时,它会打开一个带有图像列表的新窗口。下一步是从列表中选择图像,关闭新窗口,然后将图像放在 imagebtn 上。用户控件仍然在后台打开。这是我的代码。
新窗户:
private string myData;
public ImagesWindow()
{
InitializeComponent();
InitialImageList();
}
private async void InitialImageList()
{
//add try catch
string get = await HttpRequests.GetRequest(URLImages);
allJsonCategory = JsonConvert.DeserializeObject<List<ImageArray>>(get);
Console.WriteLine(get);
ImageBoxList.ItemsSource = images;
foreach (var item in allJsonCategory)
{
images.Add(item);
}
}
private void ImageBoxList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
selectedImage = (ImageArray)ImageBoxList.SelectedItem;
myData = selectedImage.full_path;
Console.WriteLine("you clicked on: " + selectedImage.name);
ProductsCategory pro = new ProductsCategory();
pro.imagePath = myData;
this.Close();
}
我的用户控件(在主窗口中):
public void setImage(string imagePath)
{
if (!imageURL.Equals(""))
{
Image imageBtn = new Image();
var imgUrl = new Uri(imagePath);
var imageData = new WebClient().DownloadData(imgUrl);
// or you can download it Async won't block your UI
// var imageData = await new WebClient().DownloadDataTaskAsync(imgUrl);
var bitmapImage = new BitmapImage { CacheOption = BitmapCacheOption.OnLoad };
bitmapImage.BeginInit();
bitmapImage.StreamSource = new MemoryStream(imageData);
bitmapImage.EndInit();
imageBtn.Source = bitmapImage;
//this.imageBtn.InvalidateVisual();
}
}
图像的 XAML:
我的错误在哪里?
谢谢你们 :)
解决方案
推荐阅读
- azure-active-directory - 删除企业应用程序后的 SCIM 配置
- scala - 检查两个相邻元素是否使用 reduceLeft 排序
- python - 带有 ndarray 的 Scipy.stats.chi2_contingency - 值错误:'...使用 a.any() 或 a.all()'
- docker - 如何检索旧码头工人的码头工人图像?
- javascript - 如何在带有 typescript 和 Option API 的 Nuxt.js v2 中使用中间件、asyncData、fetch
- elasticsearch - 如何在fluentd的匹配中定义多个索引名称
- javascript - 如何添加javascript下拉更改?
- rust - 如何将 serde_json 与 enum 之类的联合类型一起使用?
- scrapy - 为什么启动浏览器无法呈现 youtube 主页?
- python - 如果 DataFrame 中的其他行值相同,如何聚合行值?