我正在尝试将 Windows Ink 包含在 UWP 应用程序中,并首先调整Windows Ink 教程应用程序以将绘制的笔画保存为 PNG 图像(而不是 GIF / ISF)。
因此,XAML 视图包含 aWindows.UI.Xaml.Controls.InkToolbar
和 a Windows.UI.Xaml.Controls.InkCanvas
,我可以在 Canvas 上绘制笔画并通过以下代码将其保存为图像文件:
IReadOnlyList<InkStroke> currentStrokes = inkCanvas.InkPresenter.StrokeContainer.GetStrokes();
if (currentStrokes.Count > 0)
{
StorageFile file;
// Using a file picker to identify the target file -> omitted this part
if (file != null)
{
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(currentStrokes);
}
using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
await renderTarget.SaveAsync(fileStream, CanvasBitmapFileFormat.Png, 1f);
}
}
到目前为止一切正常。现在,我想用透明背景保存图像,并更改了以下行:
ds.Clear(Colors.Transparent);
即使在这种情况下,文件也会被保存,背景是透明的,并且圆珠笔笔触和铅笔笔触都被正确渲染 - 但图像结果不包括使用荧光笔工具绘制的任何笔触。
有人可以解释为什么在这种情况下省略了这些笔画吗?是否有可能以某种方式在透明背景上渲染荧光笔笔触?