我有一个画布(不是InkCanvas!),我可以在上面绘制Polylines . 这工作得很好,但是如下面的GIF所示,绘制出界限存在一个巨大的问题 .

我的画布在ScrollViewer中,ScrollViewer在GridView中 .

我试图捕获指针离开画布与以下事件处理程序:

canvas.PointerExited += Canvas_PointerExited;

canvas.PointerCaptureLost += Canvas_PointerCaptureLost;

但似乎这些事件被解雇得太慢了 .

我尝试使用画布的Clip属性,但行为没有变化 . 并且UWP画布没有“ClipToBound”属性 .

我的整个视图是在Code-Behind中生成的,因为我必须在一个视图上生成多个画布 .

有没有办法阻止这种行为?

EDIT1:

根据要求:更深入了解我的代码 .

XAML页面如下所示:

它都在一个页面内 .

我的代码背后看起来像这样:

我的建设者:

public ImprovedCanvasManager(Grid boundingGrid, Grid overviewGrid, string filepath, double height)

{

drawCanvas = new Canvas();

overviewGrid.Loaded += OverviewGrid_Loaded;

overviewGrid.SizeChanged += OverviewGrid_SizeChanged;

RowDefinition rd = new RowDefinition();

rd.Height = new GridLength(height);

overviewGrid.RowDefinitions.Add(rd);

InitializeScrollViewer();

Grid.SetRow(scroll, overviewGrid.RowDefinitions.Count);

Grid.SetColumn(scroll, 0);

scroll.Content = drawCanvas;

overviewGrid.Children.Add(scroll);

LoadImage(filepath);

}

public ImprovedCanvasManager(Grid boundingGrid, Grid overviewGrid, Grid inkToolGrid, string filepath, double height = 1000) : this(boundingGrid, overviewGrid, filepath, height)

{

AddDrawingToolsToCanvas(inkToolGrid, overviewGrid);

EnableDrawingOnCanvas(drawCanvas);

}

我只有两个构造器,使我能够简单地实例化具有绘制和无绘制能力的画布 .

这是我初始化我的ScrollViewer的方式:

private void InitializeScrollViewer()

{

scroll = new ScrollViewer();

scroll.VerticalAlignment = VerticalAlignment.Top;

scroll.VerticalScrollMode = ScrollMode.Auto;

scroll.HorizontalScrollMode = ScrollMode.Auto;

scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;

scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;

scroll.ZoomMode = ZoomMode.Enabled;

scroll.ManipulationMode = ManipulationModes.All;

scroll.MinZoomFactor = 1;

scroll.MaxZoomFactor = 3;

}

这些是影响任何视图构建的唯一代码行 .

Edit 2:

我的画布不会填充左侧的周围网格,而是填充底部 .

java canvas画图,UWP Canvas绘图越界相关推荐

  1. android canvas画图gc,自定义控件绘图(Canvas,Paint,Region等)篇一

    参考: 关于绘图相关的 Paint.Canvas多少都接触过一些,但没有系统的学习过,每次都是边查边用,这里都是参考大神的博客而成的学习记录,(采用Kotlin语言,来编写,kotlin确实有些坑,但 ...

  2. HTML5 canvas画图

    HTML5 canvas画图 HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript). 不过,<canvas> 元素本身并没有绘制能力(它仅仅 ...

  3. java canvas添加图片上传_HTML5 canvas画图及图片上传服务器

    上一个教程中我们实现了使用html5 canvas来制作涂鸦画板的效果,在这个教程中,我们将讲解如何将画好的图片上传到服务器上. 最后的效果如下图,当点击"开始画图"按钮,将在ca ...

  4. php绘图和canvas,html5 canvas画图实例用法汇总

    HTML5 canvas画图HTML5 标签用于绘制图像(通过脚本,通常是 JavaScript).不过, 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务.get ...

  5. java名片合成_HTML5 canvas绘图基础(电子名片生成器源码)

    创建canvas 您的浏览器不支持canvas 基础设置 var canvas = document.getElementById('myCanvas');var ctx = canvas.getCo ...

  6. HTML5的Canvas画图模拟太阳系运转

    今天研究的是利用HTML5的Canvas画图来模拟太阳系运转,首先,在这个太阳系里分为画轨道和画星球两个部分, 对于每一个星球我们要知道它的颜色和公转周期,如下图. 采用面向对象编程的思想,代码如下 ...

  7. 微信小程序,使用canvas画图生成海报并保存手机相册

    需求:需要根据背景图片和用户的微信的头像和昵称,生成一张海报图,并保存到手机相册. 首先在画布上绘制海报背景图片,然后再绘制头像.昵称和挑战成功的信息. 代码如下: getImageInfo() {r ...

  8. canvas画图--流畅没有齿痕的线,图像画线

    画图,首先要获取鼠标位置,当鼠标在画图板上移动时,随之画线. 1.画图板canvas,监听鼠标事件 2.获取鼠标事件,得到鼠标位置. var mouse = {x: 0, y: 0}; //起始鼠标位 ...

  9. 可扩展面向对象的canvas画图程序

    面向对象的canvas画图程序 项目简介 整个项目分为两大部分 场景 场景负责canvas控制,事件监听,动画处理 精灵 精灵则指的是每一种可以绘制的canvas元素 Demo演示地址 Demo为最新 ...

最新文章

  1. shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大
  2. 使用nvl就不能groupby了吗_宝妈月子期间真的不能吃酱油、醋、葱姜蒜吗?金牌月嫂教你月子餐调味料使用大全!...
  3. boost::uuid::nil_generator相关的测试程序
  4. linux 程序随命令窗口退出一起退出
  5. 设计模式------代理模式
  6. 2021HDU多校第五场1004 Another String-双指针
  7. 6 频率_6年了 AMD二代推土机CPU频率再次冲击8.2GHz
  8. 转 android有用代码片段
  9. 用VB实现带图片的XP风格的按钮控件
  10. UVA12321 Gas Stations【贪心】
  11. 安卓udp发包工具_好装逼牌udp-tcp发包工具
  12. WPC QI 无线充电
  13. OpenSolaris系列文章之----投影仪设置
  14. div和span标签以及标签分类
  15. Git git update-index --assume-unchanged
  16. ElasticSearch 狂神说
  17. 人体运动检测与跟踪(转)
  18. oracle中正则表达式规则,Oracle SQL 正则表达式
  19. ICD建模功能约束(详见DL/T860.73附录B)
  20. 网站中图片变形如何解决

热门文章

  1. oracle 如果存在不创建表,oracle – 如果表不存在则创建表,并在创建后输入一行...
  2. java怎么输入数据_java怎么键盘输入数据啊?
  3. oracle rowID切片,Oracle中的rowid
  4. 深入一致性哈希(Consistent Hashing)算法原理
  5. 【安全牛学习笔记】思路、身份认证方法、密码破解方法、字典
  6. 缓存系列之一:buffer、cache与浏览器缓存
  7. 本机Ajax异步通信
  8. vue.js 组件之间传递数据 1
  9. 多种思路给js文件传递参数
  10. 模块化加载_Java9模块化的类加载机制实现剖析