【发布时间】:2011-09-30 13:11:06
【问题描述】:
我有一个包含在 C# 代码中的本机库(没有可用的资源)。
存在以下 C# 声明:
[DllImport(DRIVER_DLL_NAME,
CallingConvention = CallingConvention.Cdecl,
EntryPoint = "RenderBitmap")]
private static extern int RenderBitmap(int hWnd);
我需要从我的 WPF C# 项目中调用此函数。
我有一个适用于 Windows 窗体的示例代码:
System.Windows.Forms.PictureBox DisplayWindow;
...
RenderBitmap(DisplayWindow.Handle.ToInt32());
我还没有找到如何使用 WPF System.Windows.Controls.Image 而不是 System.Windows.Forms.PictureBox - 没有 Handle 属性或类似的东西。
此外,我在"WPF and Win32 Interoperation" 中发现了以下语句:
“当您创建 WPF 窗口时,WPF 会创建一个顶级 HWND,并使用 HwndSource 将 Window 及其 WPF 内容放入 HWND。应用程序中的其余 WPF 内容共享该单一 HWND。” 。
Image 似乎根本不存在 HWND 句柄。
如何从 C# 代码调用在 WPF Image 中绘制的原生代码?
【问题讨论】: