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

时间:2021-02-25 12:02:01   收藏:0   阅读:0
最近做的项目,是对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参数代表笔迹是否需要跟着进行变化,比如放大或者缩小
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!