当前位置:网站首页>WPF 截图控件之画笔(八)「仿微信」
WPF 截图控件之画笔(八)「仿微信」
2022-08-04 11:31:00 【yanjinhua】
前言
接着上周写的截图控件继续更新添加 画笔。
1.WPF实现截屏「仿微信」
2.WPF 实现截屏控件之移动(二)「仿微信」
3.WPF 截图控件之伸缩(三) 「仿微信」
4.WPF 截图控件之绘制方框与椭圆(四) 「仿微信」
5.WPF 截图控件之绘制箭头(五)「仿微信」
6.WPF 截图控件之绘制箭头禁止越界(六)「仿微信」
7.WPF 截图控件之文字(七)「仿微信」
正文
一、接着ScreenCut继续发电;
1)添加画笔操作只允许在可编辑区域内;
再添加 画笔、使用 Polyline来实现;当前坐标 X大于Left并小于Right允许绘制;当前坐标 Y大于Top并小于Bootom允许绘制;
void DrwaInkControl(Point current)
{
CheckPoint(current);
if (current.X >= rect.Left
&&
current.X <= rect.Right
&&
current.Y >= rect.Top
&&
current.Y <= rect.Bottom)
{
if (polyLine == null)
{
polyLine = new Polyline();
polyLine.Stroke = _currentBrush == null ? Brushes.Red : _currentBrush;
polyLine.Cursor = Cursors.Hand;
polyLine.StrokeThickness = 3;
polyLine.StrokeLineJoin = PenLineJoin.Round;
polyLine.StrokeStartLineCap = PenLineCap.Round;
polyLine.StrokeEndLineCap = PenLineCap.Round;
polyLine.MouseLeftButtonDown += (s, e) =>
{
_radioButtonInk.IsChecked = true;
_radioButtonInk_Click(null, null);
SelectElement();
frameworkElement = s as Polyline;
frameworkElement.Opacity = .7;
};
_canvas.Children.Add(polyLine);
}
polyLine.Points.Add(current);
}
}
完整代码如下
ScreenCut GitHub[1] ScreenCut.xaml Gitee[2] ScreenCut Gitee[3] ScreenCut.xaml Gitee[4]

项目地址
框架名:WPFDevelopers 作者:WPFDevelopers GitHub[5] Gitee[6]
参考资料
ScreenCut GitHub: https://github.com/WPFDevelopersOrg/WPFDevelopers/blob/master/src/WPFDevelopers/Controls/ScreenCut/ScreenCut.cs
[2]ScreenCut.xaml Gitee: https://github.com/WPFDevelopersOrg/WPFDevelopers/blob/master/src/WPFDevelopers/Themes/ScreenCut.xaml
[3]ScreenCut Gitee: https://gitee.com/WPFDevelopersOrg/WPFDevelopers/blob/master/src/WPFDevelopers/Controls/ScreenCut/ScreenCut.cs
[4]ScreenCut.xaml Gitee: https://gitee.com/WPFDevelopersOrg/WPFDevelopers/blob/master/src/WPFDevelopers/Themes/ScreenCut.xaml
[5]GitHub:: https://github.com/WPFDevelopersOrg
[6]Gitee:: https://gitee.com/WPFDevelopersOrg
边栏推荐
- 蒲丰投针学习笔记
- 深度学习------pytorch-gpu环境搭建
- 3-5年以上的功能测试如何进阶自动化?
- Doing Homework HDU - 1074
- 【LeetCode】899.有序队列
- 200ppi转以太网通过4Gwifi在医药设备移动平台(平板电脑、手机)
- Advanced transcriptome analysis and R data visualization hot registration (2022.10)
- 手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
- 【目标检测】------yolo:xml和txt文件相互转化
- apache dolphin scheduler 文件dolphinscheduler-daemon.sh详解
猜你喜欢

123

Leetcode - using sequence traversal features first completed 114. The binary tree to the list

面试蚂蚁(P7)竟被MySQL难倒,奋发图强后二次面试入职蚂蚁金服

Leetcode brush questions - binary search tree related topics (98. Verify binary search tree, 235. The nearest common ancestor of binary search tree, 1038. From binary search tree to bigger sum tree, 5

命令模式(Command)

C#/VB.NET:在 Word 中设置文本对齐方式

ESP8266-Arduino编程实例-APDS-9930环境光和趋近感器驱动

Leetcode刷题——二叉搜索树相关题目(98. 验证二叉搜索树、235. 二叉搜索树的最近公共祖先、1038. 从二叉搜索树到更大和树、538. 把二叉搜索树转换为累加树)

Xilinx VIVADO 中 DDR3(Naive)的使用(3)仿真测试

【虹科案例】基于3D相机组装家具
随机推荐
Xilinx VIVADO 中 DDR3(Naive)的使用(2)读写设计
MTBF是什么意思?交换机做MTBF有什么要求?MTTF、MTBF和MTTR的区别是什么?
Leetcode刷题——路径总和
*W3C* Standards Organization
上帝空间——全球首个基于Web3.0的艺术协议创意平台,拓宽多元艺术融合边界
【地平线旭日X3派试用体验】从开机到点灯(第一节)
Advanced transcriptome analysis and R data visualization hot registration (2022.10)
使用json-server快速搭建本地数据接口
Learn to use the basic interface of set and map
北京大学,新迎3位副校长!其中一人为中科院院士!
Xilinx VIVADO 中 DDR3(Naive)的使用(3)仿真测试
HyperLynx仿真(一)LineSim简单介绍
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
Leetcode刷题——543. 二叉树的直径、617. 合并二叉树(递归解决)
深度学习------戴口罩和不戴口罩
你值得拥有的登录注册页面(附赠源码)
Mysql高级篇学习总结14:子查询优化、排序优化、GROUP BY优化、分页查询优化
IBM Q复制启动停止查看状态
ORB-SLAM3中的优化
少即是多:视觉SLAM的点稀疏化(IROS 2022)