您可以使用转换器直接绑定到您的图像.这是一个窗口中的示例:
<Window.Resources>
<WinForms2WPFImageConverter x:Key="WF2WPFDrawingConverter" />
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
...
这个SO问题有一个绘图转换器,我在这里作为ValueConverter进行了调整.
public class WinForms2WPFImageConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
System.Drawing.Image i = (System.Drawing.Image) value;
using (MemoryStream drawingStream = new MemoryStream())
{
i.Save(drawingStream);
i.Seek(0, SeekOrigin.Begin);
return System.Windows.Media.Imaging.BitmapFrame.Create(drawingStream);
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new InvalidOperationException();
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您需要在资源声明中考虑名称空间.
我建议不要使用静态属性,以便利用INotifyPropertyChanged(或依赖属性),以便当属性指向其他图像时显示自动更改.
(注意:这是键入的,不是从VS复制的,所以某处可能存在语法错误.)