关于在WPF中承载XNA的问题
vb.net吧
全部回复
仅看楼主
level 5
laferce 楼主
我想把XNA窗口加入WPF窗口中呈现,同时我希望XNA能参与WPF中的3D场景构建,所以不能使用WindowsFormsHost,找了好久找到这样一篇文章:http://blog.csdn.net/kenkao/article/details/6034340,后面给出了用D3DImage加载XNA内容的解决方案。我想将它改写成VB.Net并应用进我自己的工程,遇到这样两个难以解决的问题
1、后面一段获取内存地址的方法GetRenderTargetPointer中有一句:return new IntPtr(Pointer.Unbox(comPtr.GetValue(renderTarget)));其中的Pointer.Unbox是指针操作,MSDN上明确说明VB.Net不支持,要将这一段改写成VB.Net该怎样做?
2、也许文章作者使用的XNA版本比较老,在创建RenderTarget2D对象时使用的构造函数和后面的GraphicsDevice.SetRenderTarget方法,都与我使用的XNA4.0的方法签名不同,我蒙了一个看起来可行的重载,结果报错NotSupportException,如果要改写成符合4.0的版本,该如何改?
谢谢
2015年12月16日 13点12分 1
level 13
参照WPF与DirectX互操作的教程。尽量不要使用Pointer.UnBox等非CLS符合的成员。
大致的思路是重写OnRender和表示尺寸的方法。在OnRender以图片形式显示由XNA更新的表面。
示例可以参考SharpDX.WPF的DXElement控件。
---贴吧极速版 For UWP
2015年12月16日 15点12分 2
level 13
return new IntPtr(Pointer.Unbox(comPtr.GetValue(renderTarget)));
翻译成vb不能直接翻译,要用反射。
return Activator.CreateInstance(GetType(IntPtr),Pointer.GetMethod("Unbox").Invoke(Nothing, comPtr.GetValue(renderTarget)))
---贴吧极速版 For UWP
2015年12月16日 15点12分 3
1