schangxiang@126.com
2025-11-04 f5ed29dc26c7cd952d56ec5721a2efc43cd25992
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
 
namespace XHandler.Controls.DrawCanvas
{
    /// <summary>
    /// 绘制工具接口
    /// </summary>
    public interface IDrawTool
    {
        /// <summary>
        /// 触摸Id,用于分辨多点触摸,0表示鼠标
        /// </summary>
        Int32 TouchId { get; }
 
        /// <summary>
        /// 是否可以处理鼠标进入事件
        /// </summary>
        Boolean CanTouchEnter { get; }
 
        /// <summary>
        /// 处理鼠标进入事件
        /// </summary>
        /// <param name="point">相对画布的点</param>
        /// <returns>事件是否已处理</returns>
        Boolean OnTouchEnter(Point point);
 
        /// <summary>
        /// 是否可以处理鼠标离开事件
        /// </summary>
        Boolean CanTouchLeave { get; }
 
        /// <summary>
        /// 处理鼠标离开事件
        /// </summary>
        /// <param name="point">相对画布的点</param>
        /// <returns>事件是否已处理</returns>
        Boolean OnTouchLeave(Point point);
 
        /// <summary>
        /// 是否可以处理鼠标按下事件
        /// </summary>
        Boolean CanTouchDown { get; }
 
        /// <summary>
        /// 执行鼠标按下事件
        /// </summary>
        /// <param name="touchId">触摸Id,用于分辨多点触摸,0表示鼠标</param>
        /// <param name="point">相对画布的点</param>
        /// <returns>事件是否已处理</returns>
        Boolean OnTouchDown(Int32 touchId, Point point);
 
        /// <summary>
        /// 是否可以处理鼠标移动事件
        /// </summary>
        Boolean CanTouchMove { get; }
 
        /// <summary>
        /// 执行鼠标移动事件
        /// </summary>
        /// <param name="point">相对画布的点</param>
        /// <returns>事件是否已处理</returns>
        Boolean OnTouchMove(Point point);
 
        /// <summary>
        /// 是否可以处理鼠标弹起事件
        /// </summary>
        Boolean CanTouchUp { get; }
 
        /// <summary>
        /// 执行鼠标弹起事件
        /// </summary>
        /// <param name="point">相对画布的点</param>
        /// <returns>事件是否已处理</returns>
        Boolean OnTouchUp(Point point);
 
        /// <summary>
        /// 是否可以处理键盘按下事件
        /// </summary>
        Boolean CanKeyDown { get; }
 
        /// <summary>
        /// 处理键盘按下事件
        /// </summary>
        /// <param name="key"></param>
        /// <returns>事件是否已处理</returns>
        Boolean OnKeyDown(Key key);
 
        /// <summary>
        /// 是否可以处理键盘弹起事件
        /// </summary>
        Boolean CanKeyUp { get; }
 
        /// <summary>
        /// 处理键盘弹起事件
        /// </summary>
        /// <param name="key"></param>
        /// <returns>事件是否已处理</returns>
        Boolean OnKeyUp(Key key);
 
        /// <summary>
        /// 是否结束
        /// </summary>
        Boolean IsFinish { get; }
 
        /// <summary>
        /// 画图工具类型
        /// </summary>
        DrawToolType DrawingToolType { get; }
    }
}