您能否提供一些有关如何从基于C#XAML的Metro风格应用程序使用DirectWrite的指南。我想创建一个基于XAML的UI,但我也希望有效地将自定义文本写入屏幕。
我的猜测是我可以用C ++创建一个直接访问DirectWrite的WinRT组件,并使用C#项目中的那个组件。这可能吗?
我尝试从C#XAML Metro应用程序引用Direct2D项目,但我甚至无法实例化Direct2D模板生成的类(它抛出"动态链接库(DLL)初始化例程失败。(HRESULT异常:0x8007045A)"异常)。
然后我尝试创建一个WinRT组件DLL项目,然后将Direct2D项目中的代码文件复制粘贴到那个,但是我无法将其编译。
Direct2D和WinRT组件DLL项目类型之间是否存在根本差异?我可以从之前创建的C#中访问类吗?我可以使用后者的Direct2D吗?
更新:我发现 - 有点令人失望 - 回答类似的问题(http://social.msdn.microsoft.com/Forums/en-ZA/winappswithcsharp/thread/2d7ab4a7-9248-426e-8b4d-644b451bef7a),但那是在消费者预览之前。我希望从那时起情况发生了变化。
答案 0 :(得分:2)
这是一个非常晚的答案,但...... 这个DirectX C ++ / CX包装器:http://directxwinrt.codeplex.com/ 暴露出相当大的D2D(但很少有DWrite,......)
答案 1 :(得分:0)
现在我发现了一篇博文,回答了我的问题是否可行:http://blogs.msdn.com/b/windowsappdev/archive/2012/03/01/what-s-changed-since-build-part-1.aspx,因此可以将消费者预览版中的XAML和DirectX混合起来。
以下是如何执行此操作的详细指南:http://msdn.microsoft.com/library/windows/apps/hh825871.aspx。如果我发现我的方法出了什么问题,我将更新这个答案,以及如何正确完成。