it-swarm.com.ru

Как сделать InkCanvas для изображения в приложении UWP Windows 10?

Класс RenderTargetBitmap работал с простым Canvas + InkManager (в Windows 8.1) для рендеринга чернильных штрихов на изображении…. UWP представил InkCanvas и новый API рукописного ввода. Однако, похоже, что RenderTargetBitmap не работает с этим. Когда я пытаюсь захватить чернильные штрихи методом RenderAsync, никакие чернильные штрихи не отображаются только для других объектов, таких как Rectangle и так далее.

Это ошибка или этот новый API не предназначен для использования таким образом? Если нет, то как я могу визуализировать изображение из InkCanvas?

Спасибо!

13
mudbox

Вот как я решил эту проблему с Win2D . Прежде всего, добавьте пакет Win2D.uwp nuget в ваш проект . Затем используйте этот код:

CanvasDevice device = CanvasDevice.GetSharedDevice();
CanvasRenderTarget renderTarget = new CanvasRenderTarget(device, (int)inkCanvas.ActualWidth, (int)inkCanvas.ActualHeight, 96);

using (var ds = renderTarget.CreateDrawingSession())
{
    ds.Clear(Colors.White);
    ds.DrawInk(inkCanvas.InkPresenter.StrokeContainer.GetStrokes());
}

using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
    await renderTarget.SaveAsync(fileStream, CanvasBitmapFileFormat.Jpeg, 1f);
17
mudbox

Пожалуйста, попробуйте свойство InkPresenter.StrokeContainer http://blogs.windows.com/buildingapps/2015/09/08/going-beyond-keyboard-mouse-and-touch-with-natural-input-10-by -10/

0
Daiki Minamoto