@@ -78,6 +78,34 @@ public class DynamicElement : BootstrapComponentBase
7878 [ Parameter ]
7979 public bool TriggerContextMenu { get ; set ; }
8080
81+ /// <summary>
82+ /// <para lang="zh">获得/设置 OnTouchStart 回调委托</para>
83+ /// <para lang="en">Gets or sets the OnTouchStart callback delegate</para>
84+ /// </summary>
85+ [ Parameter ]
86+ public Func < TouchEventArgs , Task > ? OnTouchStart { get ; set ; }
87+
88+ /// <summary>
89+ /// <para lang="zh">获得/设置 OnTouchEnd 回调委托</para>
90+ /// <para lang="en">Gets or sets the OnTouchEnd callback delegate</para>
91+ /// </summary>
92+ [ Parameter ]
93+ public Func < TouchEventArgs , Task > ? OnTouchEnd { get ; set ; }
94+
95+ /// <summary>
96+ /// <para lang="zh">获得/设置 是否触发 OnTouchStart 事件 默认 false</para>
97+ /// <para lang="en">Gets or sets whether to trigger OnTouchStart events. Default is false</para>
98+ /// </summary>
99+ [ Parameter ]
100+ public bool TriggerTouchStart { get ; set ; }
101+
102+ /// <summary>
103+ /// <para lang="zh">获得/设置 是否触发 OnTouchEnd 事件 默认 false</para>
104+ /// <para lang="en">Gets or sets whether to trigger OnTouchEnd events. Default is false</para>
105+ /// </summary>
106+ [ Parameter ]
107+ public bool TriggerTouchEnd { get ; set ; }
108+
81109 /// <summary>
82110 /// <para lang="zh">获得/设置 内容组件</para>
83111 /// <para lang="en">Gets or sets the child content</para>
@@ -139,6 +167,16 @@ protected override void BuildRenderTree(RenderTreeBuilder builder)
139167 builder . AddEventPreventDefaultAttribute ( 9 , "oncontextmenu" , true ) ;
140168 }
141169
170+ if ( IsTriggerTouchStart ( ) )
171+ {
172+ builder . AddAttribute ( 11 , "ontouchstart" , EventCallback . Factory . Create < TouchEventArgs > ( this , OnTriggerTouchStart ) ) ;
173+ }
174+
175+ if ( IsTriggerTouchEnd ( ) )
176+ {
177+ builder . AddAttribute ( 12 , "ontouchend" , EventCallback . Factory . Create < TouchEventArgs > ( this , OnTriggerTouchEnd ) ) ;
178+ }
179+
142180 builder . AddContent ( 10 , ChildContent ) ;
143181
144182 if ( GenerateElement || IsTriggerClick ( ) || IsTriggerDoubleClick ( ) )
@@ -153,6 +191,10 @@ protected override void BuildRenderTree(RenderTreeBuilder builder)
153191
154192 private bool IsTriggerContextMenu ( ) => TriggerContextMenu && OnContextMenu != null ;
155193
194+ private bool IsTriggerTouchStart ( ) => TriggerTouchStart && OnTouchStart != null ;
195+
196+ private bool IsTriggerTouchEnd ( ) => TriggerTouchEnd && OnTouchEnd != null ;
197+
156198 private async Task OnTriggerClick ( )
157199 {
158200 if ( OnClick != null )
@@ -176,4 +218,20 @@ private async Task OnTriggerContextMenu(MouseEventArgs e)
176218 await OnContextMenu ( e ) ;
177219 }
178220 }
221+
222+ private async Task OnTriggerTouchStart ( TouchEventArgs e )
223+ {
224+ if ( OnTouchStart != null )
225+ {
226+ await OnTouchStart ( e ) ;
227+ }
228+ }
229+
230+ private async Task OnTriggerTouchEnd ( TouchEventArgs e )
231+ {
232+ if ( OnTouchEnd != null )
233+ {
234+ await OnTouchEnd ( e ) ;
235+ }
236+ }
179237}
0 commit comments