使用C#XAML Metro风格应用程序中的DirectWrite

本文关键字:DirectWrite 应用程序 风格 C#XAML Metro 使用 | 更新日期: 2023-09-27 18:27:05

您能为如何从基于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),但那是在消费者预览之前。我希望从那时起情况有所改变。

使用C#XAML Metro风格应用程序中的DirectWrite

这是一个很晚的答案,但是。。。此DirectX C++/CX包装:http://directxwinrt.codeplex.com/暴露相当多的D2D(但很少的DWrite,…)

现在我发现了一篇博客文章,它回答了我关于这是否可能的部分问题: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.如果我发现我的方法有什么问题,以及应该如何正确地完成,我将更新这个答案。