protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); _circleImage = new ElmSharp.EvasImage(Forms.NativeParent); _circleImage.IsFilled = true; _circleImage.File = ResourcePath.GetPath("circle.png"); _circleImage.Show(); _circleImage.Geometry = Control.Geometry; Control.SetClip(_circleImage); Control.LayoutUpdated += OnLayoutUpdated; Control.Moved += Control_Moved; Control.Deleted += Control_Deleted; }
protected override void OnElementChanged(ElementChangedEventArgs <Layout> e) { base.OnElementChanged(e); if (_circleImage == null) { _circleImage = new ElmSharp.EvasImage(Forms.NativeParent); _circleImage.IsFilled = true; _circleImage.File = ResourcePath.GetPath("circle.png"); _circleImage.Show(); _circleImage.Geometry = Control.Geometry; _circleImage.PassEvents = true; Control.SetClip(_circleImage); Control.LayoutUpdated += OnLayoutUpdated; Control.Moved += Control_Moved; Control.Deleted += Control_Deleted; } }
protected override void OnElementChanged(ElementChangedEventArgs <CircleImage> e) { if (Control == null) { _circleImage = new ElmSharp.EvasImage(XForms.NativeParent); _circleImage.IsFilled = true; GetClipImage(); var image = new FormsNative.Image(XForms.NativeParent); SetNativeControl(image); Control.Resized += Control_Resized; Control.Moved += Control_Moved; Control.Deleted += Control_Deleted; } UpdateAll(); base.OnElementChanged(e); }
private void Control_Deleted(object sender, EventArgs e) { _circleImage?.Unrealize(); _circleImage = null; }