在WPF和Winforms之间共享图形

时间:2012-04-06 20:38:39

标签: wpf winforms

我有许多png,位图和图标,我想在Winforms项目和WPF项目中使用它们。

我很乐意在winforms中使用资源,并且对WPF中的资源感到满意。

在两者共享共同资源的情况下,人们在做什么?我目前的感觉是拥有一个WPF资源程序集和一个Winforms资源程序集,但我所看到的方法似乎都不流畅。

感谢

2 个答案:

答案 0 :(得分:2)

我有一个包含WPF和Winforms控件的项目。该项目有资源文件夹,其中包含所有图像。我只是使用相对路径从磁盘加载它们 假设您的项目名称是“MyProject”,并且images路径是名为“MyImages”的文件夹,在projects文件夹中,并且您的图像名称是“MyImage.bmp”,您可以按如下方式加载它们:

在Winforms中:

new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProject.MyImages.MyImage.bmp")

在WPF中

 <Image Source="pack://application:,,,/MyProject;Component/MyImages/MyImage.bmp">

希望它有所帮助...

答案 1 :(得分:1)

如果构建操作设置为“嵌入式资源”,则Amittai Shapira会回答。如果将构建操作设置为“资源”,则可以使用:

<强>的WinForms:

Bitmap photo;
var picUri = new Uri(@"pack://application:,,,/MyProject;component/MyImages/MyImage.bmp", UriKind.Absolute);
var resourceInfo = Application.GetResourceStream(picUri);

if (resourceInfo != null)
{
   photo = new Bitmap(resourceInfo.Stream);
}

<强> WPF:

<Image Source="MyImages/MyImage.bmp"/>