在WPF和Winforms之间共享图形
问题描述:
我有许多想在Winforms项目和WPF项目中使用的png,位图和图标。在WPF和Winforms之间共享图形
我很喜欢在winforms中使用资源,并且很满意WPF中的资源。
什么人在做他们有共同资源共享的地方?我目前的感觉是有一个WPF资源程序集和一个Winforms资源程序集,但我看过的所有方法都不是很流畅。
谢谢
答
我有一个WPF和Winforms控件的项目。该项目有资源文件夹,其中包含所有图像。我只是使用相对路径从磁盘加载它们。
假设你的项目名称为“MyProject的”,并且图像路径是一个名为“MyImages”,项目文件夹内的文件夹,你的形象的名字叫“MyImage.bmp”你可以按如下加载它们:
在的WinForms:
new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProject.MyImages.MyImage.bmp")
在WPF
<Image Source="pack://application:,,,/MyProject;Component/MyImages/MyImage.bmp">
希望它可以帮助...
答
通过回答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"/>
是的,我认为它。我可能会添加一个助手来自动建立可用的资源,但是您的答案让我放松了心态。谢谢 :) – Ian 2012-04-11 21:30:05