托管WPF控件中的嵌入式图像资源

时间:2015-02-04 15:39:58

标签: wpf c++-cli embedded-resource

我的设置有点非正统 - CLR托管在本机Win32应用程序中。应用程序加载并调用托管程序集(用C ++ / CLI编写)。 Assembly使用WPF ElementHost创建Windows窗体表单。 ElementHost将填充一个包含图像控件和标签控件的堆栈面板。

托管程序集包含嵌入的图像资源。资源文件的名称(在项目中)是“Images”,而有问题的特定资源的名称是“ISIconDB”。

如何将上述资源用作图像控件的源?

1 个答案:

答案 0 :(得分:0)

想出来。



[DllImport("gdi32.dll")] int DeleteObject(IntPtr hObject);

//Drawing::Bitmap^ OrgResource; 

Windows::Media::Imaging::BitmapSource^ Marshalled = nullptr;

try {
Marshalled = System::Windows::Interop::Imaging::CreateBitmapSourceFromHBitmap(OrgResource->GetHbitmap(),
IntPtr::Zero, Windows::Int32Rect::Empty, Windows::Media::Imaging::BitmapSizeOptions::FromEmptyOptions()); 
}
catch (...) { 
Marshalled = nullptr;
} 
finally { 
DeleteObject(OrgResource->GetHbitmap());
}