首页 > 解决方案 > 图像不会改变 - 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:

我的错误在哪里?

谢谢你们 :)

标签: c#wpf

解决方案


推荐阅读