当前位置: 首页 > news >正文

WPF InkCanvas 控件详解

1. InkCanvas 是什么?

InkCanvas 是 WPF 提供的一个手写绘图控件,它允许用户使用鼠标、触摸屏或手写笔在界面上进行绘图、标注等操作。

核心特点:
✅ 具备笔迹存储和管理功能。
✅ 提供 ChildrenStrokes 两个集合,分别用于管理子控件绘制的笔迹
✅ 通过 EditingMode 属性控制交互模式,比如绘制、擦除、选择等
✅ 可结合 InkStroke 进行笔迹管理、存储、撤销等操作


2. InkCanvas 的核心集合

InkCanvas 主要包含两个重要的子集合

集合名称作用
Children存储 UIElement 子控件,如 ButtonTextBox
Strokes存储用户绘制的笔迹数据,可用于保存、撤销、重绘等

示例:向 Children 添加一个按钮

Button myButton = new Button { Content = "清除", Width = 80, Height = 30 };
Canvas.SetLeft(myButton, 10);
Canvas.SetTop(myButton, 10);
myInkCanvas.Children.Add(myButton);

示例:操作 Strokes 集合

// 清空所有笔迹
myInkCanvas.Strokes.Clear();

3. InkCanvas.EditingMode 属性 

EditingMode 控制 InkCanvas 的交互方式,共有7 种模式

作用示例
Ink默认模式,使用笔绘制线条适用于手写绘图
GestureOnly只识别手势,不绘制用于手势识别
InkAndGesture允许绘制,同时识别手势适用于支持手势的绘图软件
Select允许选择已有的笔迹对象适用于编辑模式
EraseByStroke擦除整条笔迹适用于橡皮擦工具
EraseByPoint逐点擦除笔迹适用于精细擦除
None禁用 InkCanvas 的所有交互适用于只展示内容,不允许修改

4. 代码示例:不同模式的使用 

1️⃣ 绘制模式(Ink)

<InkCanvas x:Name="my

http://www.mrgr.cn/news/96065.html

相关文章:

  • package.json版本前缀
  • 零拷贝原理面试回答(参考小林Coding)
  • 蓝桥杯题型分布2
  • LLM - R1 强化学习 DRPO 策略优化 DAPO 与 Dr. GRPO 算法 教程
  • 可视化工具TensorBoard
  • AI小白的第八天:梯度下降(含代码实现)
  • AI数据分析:一键生成数据分析报告
  • Unity URP自定义Shader支持RenderLayer
  • 云资源开发学习应用场景指南,场景 1 云上编程实践平台
  • F1C200S编译
  • 【深度学习与实战】2.3、线性回归模型与梯度下降法先导案例--最小二乘法(向量形式求解)
  • Python 异常处理完全指南
  • Ardupilot开源无人机之Geek SDK进展2025Q2
  • ESP32驱动BMP280和MQ4传感器
  • javafx项目结构+代码规范
  • Tabby 一:如何在Mac配置保姆级教程(本地模型替换hugging face下载)
  • 【大模型系列篇】使用Python开发MCP Server及Inspector工具调试
  • 【docker】docker-compose安装RabbitMQ
  • 我的世界1.20.1forge模组开发进阶教程——序列化(1)
  • Python SciPy面试题及参考答案