﻿条件预编译：

#if WIN
            throw new NotImplementedException();
#elif IOS
            throw new NotImplementedException();
#elif ANDROID
            throw new NotImplementedException();
#elif WASM
            throw new NotImplementedException();
#endif


各平台事件支持情况：  (2022-03-07升级.net6.0后重新整理)

结论：
1. DoubleTapped 慎用，原因：
   a. iOS始终不触发；
   b. DoubleTapped 之前始终触发 Tapped，若两个事件都有操作容易无法区分，假如 Lv中单击导航到新页面、双击执行其他功能，当操作者双击时产生混乱

2. Tapped RightTapped 在 android、ios、wasm 中不管是否设置 Handled=true，始终向上冒泡

*****************************************************************************【Windows】*****************************************************************************
-------元素自身事件-------

1. 原地点击，快速释放
Pressed -> Released -> Tapped

2. 原地双击
Pressed -> Released -> Tapped -> Pressed -> DoubleTapped -> Released

3. 原地右键点击
Pressed -> Released -> RightTapped

4. 点击和释放不是同一点
Pressed -> Moved -> Released


-------子元素冒泡事件-------

一、子元素 Handled = false 时

1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Child)
Tapped(Parent)

2. 原地双击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Child)
Tapped(Parent)
Pressed(Child)
Pressed(Parent)
DoubleTapped(Child)
DoubleTapped(Parent)
Released(Child)
Released(Parent)

3. 原地右键点击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Released(Parent)
RightTapped(Child)
RightTapped(Parent)

4. 点击和释放不是同一点
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Released(Parent)


二、子元素 Handled = true 时

1. 原地点击，快速释放
Entered(Child)
Pressed(Child)
Released(Child)
Tapped(Child)

2. 原地双击
Entered(Child)
Pressed(Child)
Released(Child)
Tapped(Child)
Pressed(Child)
DoubleTapped(Child)
Released(Child)

3. 原地右键点击
Entered(Child)
Pressed(Child)
Released(Child)
RightTapped(Child)

4. 点击和释放不是同一点
Entered(Child)
Pressed(Child)
Moved(Child)
Released(Child)



-------父元素AddHandler事件时-------
1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Child)
Tapped(Parent)

2. 原地双击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Child)
Tapped(Parent)
Pressed(Child)
Pressed(Parent)
DoubleTapped(Child)
DoubleTapped(Parent)
Released(Child)
Released(Parent)

3. 原地右键点击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Released(Parent)
RightTapped(Child)
RightTapped(Parent)

4. 点击和释放不是同一点
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Released(Parent)




*****************************************************************************【Android】*****************************************************************************
点击未释放前离开目标元素触发Exited事件

-------元素自身事件-------

1. 原地点击，快速释放
Entered -> Pressed -> Released -> Tapped -> Exited

2. 原地双击
Entered -> Pressed -> Released -> Tapped -> Exited -> Entered -> Pressed -> DoubleTapped -> Released -> Exited

3. 原地点击，释放间隔时间长
Entered -> Pressed -> Released -> RightTapped -> Exited

4. 点击和释放不是同一点
Entered -> Pressed -> Moved -> Released -> Exited



-------子元素冒泡事件-------

一、子元素 Handled = false 时

1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)
Exited(Child)
Exited(Parent)

2. 原地双击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)
Exited(Child)
Exited(Parent)
Entered(Child)
Entered(Parent)
Pressed(Child)
DoubleTapped(Child)
DoubleTapped(Parent)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Parent)
Exited(Child)
Exited(Parent)

3. 原地点击，释放间隔时间长
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
RightTapped(Child)
RightTapped(Parent)
Released(Parent)
Exited(Child)
Exited(Parent)

4. 点击和释放不是同一点
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Released(Parent)
Exited(Child)
Exited(Parent)

二、子元素 Handled = true 时

1. 原地点击，快速释放
Entered(Child)
Pressed(Child)
Released(Child)
Tapped(Parent)
Tapped(Child)
Exited(Child)

2. 原地双击
Entered(Child)
Pressed(Child)
Released(Child)
Tapped(Parent)
Tapped(Child)
Exited(Child)
Entered(Child)
Pressed(Child)
DoubleTapped(Parent)
DoubleTapped(Child)
Released(Child)
Exited(Child)

3. 原地点击，释放间隔时间长
Entered(Child)
Pressed(Child)
Released(Child)
RightTapped(Parent)
RightTapped(Child)
Exited(Child)

4. 点击和释放不是同一点
Entered(Child)
Pressed(Child)
Moved(Child)
Released(Child)
Exited(Child)


-------父元素AddHandler事件时-------
1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)
Exited(Child)
Exited(Parent)

2. 原地双击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)
Exited(Child)
Exited(Parent)
Entered(Child)
Entered(Parent)
Pressed(Child)
DoubleTapped(Child)
DoubleTapped(Parent)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Parent)
Exited(Child)
Exited(Parent)

3. 原地点击，释放间隔时间长
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Released(Child)
RightTapped(Child)
RightTapped(Parent)
Released(Parent)
Exited(Child)
Exited(Parent)

4. 点击和释放不是同一点
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Released(Parent)
Exited(Child)
Exited(Parent)



*****************************************************************************【iOS】*****************************************************************************
始终无DoubleTapped事件，点击未释放前离开目标元素触发Exited事件

1. 原地点击，快速释放
Entered -> Pressed -> Moved -> Released -> Tapped -> Exited

2. 原地双击
Entered -> Pressed -> Moved -> Released -> Tapped -> Exited -> Entered -> Pressed -> Moved -> Released -> Tapped -> Exited

3. 原地点击，释放间隔时间长
Entered -> Pressed -> Moved -> Released -> RightTapped -> Exited

4. 点击和释放不是同一点
Entered -> Pressed -> Moved -> Released -> Exited



-------子元素冒泡事件-------

一、子元素 Handled = false 时

1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Tapped(Child)
Tapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)


2. 原地双击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Tapped(Child)
Tapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Tapped(Child)
Tapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)


3. 原地点击，释放间隔时间长
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
RightTapped(Child)
RightTapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)


4. 点击和释放不是同一点
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Exited(Child)
Released(Parent)
Exited(Parent)



二、子元素 Handled = true 时

1. 原地点击，快速释放
Entered(Child)
Pressed(Child)
Moved(Child)
Released(Child)
Tapped(Parent)
Tapped(Child)
Exited(Child)
Exited(Parent)


2. 原地双击
Entered(Child)
Pressed(Child)
Moved(Child)
Released(Child)
Tapped(Parent)
Tapped(Child)
Exited(Child)
Exited(Parent)
Entered(Child)
Pressed(Child)
Moved(Child)
Released(Child)
Tapped(Parent)
Tapped(Child)
Exited(Child)
Exited(Parent)


3. 原地点击，释放间隔时间长
Entered(Child)
Pressed(Child)
Moved(Child)
Released(Child)
RightTapped(Parent)
RightTapped(Child)
Exited(Child)
Exited(Parent)


4. 点击和释放不是同一点
Entered(Child)
Pressed(Child)
Moved(Child)
Released(Child)
Exited(Child)
Exited(Parent)



-------父元素AddHandler事件时-------
1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Tapped(Child)
Tapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)


2. 原地双击
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Tapped(Child)
Tapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Tapped(Child)
Tapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)


3. 原地点击，释放间隔时间长
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
RightTapped(Child)
RightTapped(Parent)
Exited(Child)
Released(Parent)
Exited(Parent)


4. 点击和释放不是同一点
Entered(Child)
Entered(Parent)
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Exited(Child)
Released(Parent)
Exited(Parent)




*****************************************************************************【Wasm】*****************************************************************************
-------元素自身事件-------

1. 原地点击，快速释放
Pressed -> Released -> Tapped

2. 原地双击
Pressed -> Released -> Tapped -> Pressed -> DoubleTapped -> Released

3. 原地右键点击
Pressed -> Released -> ightTapped

4. 点击和释放不是同一点
Pressed -> Moved -> Released


-------子元素冒泡事件-------

一、子元素 Handled = false 时

1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Moved(Child)
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)


2. 原地双击
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)
Pressed(Child)
DoubleTapped(Child)
DoubleTapped(Parent)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Parent)


3. 原地右键点击
Pressed(Child)
Pressed(Parent)
Released(Child)
RightTapped(Child)
RightTapped(Parent)
Released(Parent)


4. 点击和释放不是同一点
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Released(Parent)



二、子元素 Handled = true 时

1. 原地点击，快速释放
Entered(Child)
Moved(Child)
Pressed(Child)
Released(Child)
Tapped(Parent)
Tapped(Child)


2. 原地双击
Pressed(Child)
Released(Child)
Tapped(Parent)
Tapped(Child)
Pressed(Child)
DoubleTapped(Parent)
DoubleTapped(Child)
Released(Child)


3. 原地右键点击
Pressed(Child)
Released(Child)
RightTapped(Parent)
RightTapped(Child)


4. 点击和释放不是同一点
Pressed(Child)
Moved(Child)
Released(Child)



-------父元素AddHandler事件时-------
1. 原地点击，快速释放
Entered(Child)
Entered(Parent)
Moved(Child)
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)


2. 原地双击
Pressed(Child)
Pressed(Parent)
Released(Child)
Tapped(Child)
Tapped(Parent)
Released(Parent)
Pressed(Child)
DoubleTapped(Child)
DoubleTapped(Parent)
Pressed(Parent)
Released(Child)
Released(Parent)
Tapped(Parent)


3. 原地右键点击
Pressed(Child)
Pressed(Parent)
Released(Child)
RightTapped(Child)
RightTapped(Parent)
Released(Parent)


4. 点击和释放不是同一点
Pressed(Child)
Pressed(Parent)
Moved(Child)
Released(Child)
Released(Parent)
