先看一下结果
结论是混合编程没问题,也不是很复杂。
关键点在这里 在silverlight应用一开始 创建一个 XNA的Game对象。调用Game.Graphics.ApplyChange(),让他创建一个device。
这个部分我做了很多测试,如果你不一开始做这些事,game的初始化会破坏silverlight的显示,神马都没了。
我试过自己创建device,device的构造函数被微软屏蔽了,自己创建不成功。
拿到这个device以后,创建一个rendertarget,往rendertarget上绘制。最后用silverlight的writeablebitmap。rendertarget创建用Color,数据格式一样的,直接copy就是。
性能尚可,我用的贴图大小是800*480,模拟器上有一定实用价值。
我对silverlight不熟悉,不知道怎么把文件弄到titlecontainer能访问的位置,看资料XNA上用titlecontainer在这里不行了,要换嵌入资源。
如果真没有titlecontainer,content也就废了,虽然我本来就不用content。
后来知道是可以用的,只能在主项目里加文件,设置为content(内容)
这个研究权当抛砖引玉,微软百般限制我们这样干,这就有危险会不让发布,另外我也实在没想出什么项目需要这个功能。
只是那天和马宁(一个微软的高人)聊起来,让我不自觉的发散了。
另外求如何访问文档的方法,找了一晚上了(比如adobe的pdf阅读器可以访问邮件中的pdf文件,这个接口在哪里)