码迷,mamicode.com
首页 > Windows程序 > 详细

WPF InkCanva中操作Stroke进行平移的方法

时间:2021-02-25 12:02:01      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:笔迹   for   etl   rgba   col   false   poi   bsp   移动   

最近做的项目,是对WPF InkCanvas进行操作,现在网上的教程多数都是简单的引用InkCanva,然后对InkCanvasEditingMode进行简单的设置,实现笔迹的颜色,擦除,写等操作,这些基础的内容在项目开发中几乎无法使用,近期将会持续更新,在这个项目中对InkCanva使用及理解

1.对如何对笔迹进行缩放与位移
首先笔迹Stroke不是继承自UIElement,几乎所有的控件,图形都继承UIElement,但笔迹不是,这就导致对笔迹的常用操作失效,比如InkCanvas.SetLeft,Panel.GetZIndex,Panel.SetZIndex,这些功能都需要继承自UIElement,所以Stroke无法通过传统方式进行移动,面板展示是固定的。
那如何解决这个问题,可以通过Transform,Stroke支持转换方法
public virtual void Transform(Matrix transformMatrix, bool applyToStylusTip)
所以平移可以通过如下方式实现
            TranslateTransform translate = new TranslateTransform();
            translate.X = point.X;
            translate.Y = point.Y;
            Matrix matrixTranslate = translate.Value;
            _stroke.Transform(matrixTranslate, false);
X和Y代表要移动过去的点,Transform第二个bool参数代表笔迹是否需要跟着进行变化,比如放大或者缩小

WPF InkCanva中操作Stroke进行平移的方法

标签:笔迹   for   etl   rgba   col   false   poi   bsp   移动   

原文地址:https://www.cnblogs.com/lhyAira/p/14443277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!