Изображение не меняется в WPF control
я говорил этот, написал почти тот же код, но на другом языке, он работает не так, как ожидалось!
я использую winform(C++/Cli) в качестве хоста и 'WPF User Control Libaray'(C#) в качестве дочернего элемента управления.
интегрированный пользовательский элемент управления WPF(PictureBox) в winforms с использованием компонента ElementHost в Winform.
В принципе, я хотел изменить картинку в элементе управления WPF с помощью кнопки winform. Он компилируется и работает нормально.
Но единственная проблема заключается в том, что изображение не меняется, даже если путь для изображения правильный.
ниже приведен код в событии WinForm button_click
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { OpenFileDialog ^ofd = gcnew OpenFileDialog(); WpfControlLibrary1::UserControl1 ^uc = gcnew UserControl1(); if (ofd->ShowDialog() == Windows::Forms::DialogResult::OK) uc->open(ofd->FileName); }
Ниже приведен код в UserControl1. xaml.cs
public void open(string path) { MessageBox.Show(path); //path seems to be fine img.Source = new BitmapImage(new Uri(path)); }
Ниже приведен код в UserControl1. xaml
<UserControl x:Class="WpfControlLibrary1.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <Grid Margin="-54,0,0,0"> <Image x:Name="img" Stretch="Uniform" Opacity="1" Source="Koala.jpg"/> </Grid> </UserControl>
Что я уже пробовал:
попробовал удалить исходное изображение в коде xaml, но это не дало никакого эффекта