Как нарисовать строку в растровое изображение в WinRT

Как вы рисуете строку для изображения в winRT? В WinForms это можно было сделать с помощью метода drawstring() внутри пространства имен system.drawing, но я не смог найти его эквивалент в WinRT API.


person yohannist    schedule 22.12.2012    source источник


Ответы (5)


Direct2D — это замена GDI в WinRT. Поэтому вам придется использовать C++/CX с DirectX для рисования текста.

У меня нет для вас примеров, но, возможно, эта ссылка (и включенные в нее ссылки) может помочь вам на вашем пути.

person Mario S    schedule 22.12.2012
comment
@fire'fly Я знаю, но, к сожалению, пока это невозможно. Но по крайней мере есть решение для WinRT, вообще с Direct2D. - person Mario S; 23.12.2012
comment
Так что теперь мы не можем рисовать текст без C++! Молодцы Майкрософт! - person CSharper; 23.05.2013

В 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);
person Tommy Ovesen    schedule 27.11.2013

Вам придется использовать DirectX. Вы можете сделать это на C#, используя SharpDx.

person rikkit    schedule 22.12.2012

Нельзя - такого API к сожалению нет :-(

person Ross Dargan    schedule 22.12.2012

Google для «Metro CSharp с использованием Direct2D и DirectWrite для графики». Это один из их примеров кода. Это не самый лаконичный пример, который я когда-либо видел, но он работает. Использование SharpDX для того же будет чище.

person technicalflaw    schedule 05.01.2013
comment
Будет здорово, если вы тоже объясните, что нашли - person dumbledad; 02.09.2015