c# - 如何在uwp中保存全屏墨水文件?
问题描述
我有一个关于在 uwp 中保存墨迹文件(包括墨迹的元数据文件 .gif)的问题。
(墨水表示用户绘制的东西)
目前,我只能保存属于 inkcanvas 的墨水范围,而不是全屏 inkcanvas
inkcanvas.InkPresenter.StrokeContainer.SaveAsync(outputStream);
这种方式只节省墨水,而不是inkcanvas的全屏。
我想向用户显示墨水和全屏,所以我需要墨水和全屏
这种方式可行吗?
请任何帮助!谢谢
解决方案
一种解决方法是在画布上绘制 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
完成后将其删除。
推荐阅读
- python-2.7 - 系统开机时如何自动启动odoo服务器
- angular - 如何访问 Angular 5 中文件上传的 HttpEvent 进度?
- sql - 连接的两个表上的子字符串匹配
- php - 如何从 MySQL 结果创建条件
- javascript - Cytoscape.js 中 Cytoscape 中心性指标的默认选项
- html - 导航栏没有出现在我的页面顶部,出现在奇怪的地方
- android - 滚动内容时如何滑动 ViewPager?
- c# - 实体框架 SaveChanges 是如何工作的?
- sql-server - sql server join 查询不包含同名列的表名
- jsp - 如何在spring mvc中的click事件中将jsp页面注入div