/// <summary> /// Invoked whenever the element has been changed in Xamarin. /// </summary> /// <param name="e">ElementChangedEventArgs<Image></Image></param> protected override void OnElementChanged(ElementChangedEventArgs <Image> e) { base.OnElementChanged(e); if (e.NewElement == null) { return; } SwipeImage sb = e.NewElement as SwipeImage; if (sb == null) { return; } // To detect tap Gesture gestureRec = new ElmSharp.GestureLayer(Control); gestureRec.Attach(Control); gestureRec.LongTapTimeout = 0.001; gestureRec.SetTapCallback(ElmSharp.GestureLayer.GestureType.Tap, ElmSharp.GestureLayer.GestureState.Start, (ev) => { sb.TapStartCommand?.Execute(null); }); Action <ElmSharp.GestureLayer.TapData> tapEndAction = (ev) => { sb.TapEndCommand?.Execute(null); }; gestureRec.SetTapCallback(ElmSharp.GestureLayer.GestureType.Tap, ElmSharp.GestureLayer.GestureState.End, tapEndAction); gestureRec.SetTapCallback(ElmSharp.GestureLayer.GestureType.LongTap, ElmSharp.GestureLayer.GestureState.End, tapEndAction); }
/// <summary> /// Create dismiss image for Alarm Ring type /// </summary> private void CreateAlarmOnOffArea() { dismissImage = new SwipeImage { OriginalSource = "ring/alarm_btn_bg_dismiss.png", WidthRequest = 180, HeightRequest = 180, TapStartCommand = AlarmTapStartCommand, }; ringImage = new Image { Source = "ring/alarm_btn_circle_line_AO003P.png", WidthRequest = 180, HeightRequest = 180, IsVisible = false, }; backgroundRingImage = new Image { Source = "ring/alarm_btn_circle_drag_A3.png", WidthRequest = 180, HeightRequest = 180, IsVisible = false, }; AbsoluteLayout.SetLayoutBounds(dismissImage, dismissOnlyRec); AbsoluteLayout.SetLayoutFlags(dismissImage, AbsoluteLayoutFlags.None); swipeAreaLayout.Children.Add(dismissImage); AbsoluteLayout.SetLayoutBounds(ringImage, dismissOnlyRec); AbsoluteLayout.SetLayoutFlags(ringImage, AbsoluteLayoutFlags.None); swipeAreaLayout.Children.Add(ringImage); AbsoluteLayout.SetLayoutBounds(backgroundRingImage, dismissOnlyRec); AbsoluteLayout.SetLayoutFlags(backgroundRingImage, AbsoluteLayoutFlags.None); swipeAreaLayout.Children.Add(backgroundRingImage); }