如何在 uwp 中保存全屏墨迹文件?
How to save a full-screen ink file in uwp?
我对在 uwp 中保存 ink 文件(包括 ink 的元数据文件 .gif)有疑问。
(墨水表示用户绘制的东西)
目前我只能保存属于inkcanvas一部分的墨水范围,不能保存全屏inkcanvas
inkcanvas.InkPresenter.StrokeContainer.SaveAsync(outputStream);
这种方式只是省墨,不是inkcanvas的全屏。
我想给用户显示墨迹和全屏,所以我需要一个墨迹和全屏
这种方式可行吗?
请帮忙!谢谢
一个解决方法是在 canvas 上绘制 2 个 不可见的 点,一个在左上角,一个在右下角。
在调用 StrokeContainer.SaveAsync
之前添加它们。
private void AddInvisibleDotsAtCorners()
{
var inkStrokeBuilder = new InkStrokeBuilder();
var stroke1 = inkStrokeBuilder.CreateStrokeFromInkPoints(
new InkPoint[]
{
new InkPoint(new Point(0, 0), 0.0f)
}, System.Numerics.Matrix3x2.Identity);
var stroke2 = inkStrokeBuilder.CreateStrokeFromInkPoints(
new InkPoint[]
{
new InkPoint(new Point(inkCanvas.ActualWidth, inkCanvas.ActualHeight), 0.0f)
}, System.Numerics.Matrix3x2.Identity);
inkCanvas.InkPresenter.StrokeContainer.AddStroke(stroke1);
inkCanvas.InkPresenter.StrokeContainer.AddStroke(stroke2);
}
然后在调用 StrokeContainer.SaveAsync
完成后删除它们。
我对在 uwp 中保存 ink 文件(包括 ink 的元数据文件 .gif)有疑问。
(墨水表示用户绘制的东西)
目前我只能保存属于inkcanvas一部分的墨水范围,不能保存全屏inkcanvas
inkcanvas.InkPresenter.StrokeContainer.SaveAsync(outputStream);
这种方式只是省墨,不是inkcanvas的全屏。
我想给用户显示墨迹和全屏,所以我需要一个墨迹和全屏
这种方式可行吗?
请帮忙!谢谢
一个解决方法是在 canvas 上绘制 2 个 不可见的 点,一个在左上角,一个在右下角。
在调用 StrokeContainer.SaveAsync
之前添加它们。
private void AddInvisibleDotsAtCorners()
{
var inkStrokeBuilder = new InkStrokeBuilder();
var stroke1 = inkStrokeBuilder.CreateStrokeFromInkPoints(
new InkPoint[]
{
new InkPoint(new Point(0, 0), 0.0f)
}, System.Numerics.Matrix3x2.Identity);
var stroke2 = inkStrokeBuilder.CreateStrokeFromInkPoints(
new InkPoint[]
{
new InkPoint(new Point(inkCanvas.ActualWidth, inkCanvas.ActualHeight), 0.0f)
}, System.Numerics.Matrix3x2.Identity);
inkCanvas.InkPresenter.StrokeContainer.AddStroke(stroke1);
inkCanvas.InkPresenter.StrokeContainer.AddStroke(stroke2);
}
然后在调用 StrokeContainer.SaveAsync
完成后删除它们。