如何在WinRT中将字符串绘制到位图图像上

4

如何在winRT中向图像绘制字符串?在WinForms中,可以使用system.drawing命名空间中的drawstring()方法来完成此操作,但我无法找到其在WinRT API中的等效项。

5个回答

5
在Windows 8.1中,终于支持将XAML控件渲染为位图。现在您可以使用
var renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(uiElement, width, height));
var buffer = await renderTargetBitmap.GetPixelsAsync();
var tmpWbm = new WriteableBitmap(renderTargetBitmap.PixelWidth, renderTargetBitmap.PixelHeight);

2

您需要使用DirectX。在C#中,您可以使用SharpDx来实现。


1

Direct2D是WinRT中GDI的替代品。因此,您需要使用C++/CX和DirectX来绘制文本。

我没有任何示例可以提供给您,但也许这个链接(以及其中包含的链接)可以帮助您入门。


@fire'fly 我知道,但是目前来说这是不可能的。但至少有一个解决方案适用于WinRT,使用Direct2D。 - Mario S
2
现在我们不能在没有C++的情况下绘制一些文本!干得好,微软! - M. Jahedbozorgan

0

很抱歉,您无法这样做 - 没有这样的API可用 :-(


0

在谷歌上搜索“Metro CSharp using Direct2D and DirectWrite for Graphics”。这是他们的代码示例之一。虽然不是我见过的最简洁的示例,但确实可行。使用SharpDX来完成相同的事情会更加干净。


如果您能解释一下您发现的内容,那就太棒了。 - dumbledad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接