WPF 完美截图 <一>

时间:2021-07-01 15:45:58

最近比较懒,一直没继续,此处省略一万字,下面开始正题。

简单介绍下截图的思路:

核心是利用 public CroppedBitmap(BitmapSource source, Int32Rect sourceRect) 方法截图

进一步分析就是如何得到这两个参数 source和sourceRect.

source可以通过Image的Source并转换得到

sourceRect是重中之重,有几个版本:

1.用Canvas通过让其拖动然后取得其位置及大小并转换成Int32Rect

2.用一个Int32Rect通过让其拖动然后取得其位置及大小

3.用Thumb并定义其模板让其显示成一个矩形

最终也是我认为最适合的是3,因为Thumb本身就是可以拖动的

进一步分析,四角及各边中心是可以进行拖动并实时改变中心Thumb的大小的

这8个家伙我也用Thumb并配合模板来实现。

综上,需求精简为:

1.BitmapSource与BitmapImage及CorppedBitmap之间的转换

2.中心及边角的模板实现及其拖动

3.除了拖动矩形外区域要实现遮罩,遮罩的实现

在接下来的文章中将对以上三点进行详细解说。