protected override void OnAttached()
        {
            effect = TouchEffect.PickFrom(Element);
            if (effect?.IsDisabled ?? true)
            {
                return;
            }

            effect.Element = (VisualElement)Element;

            if (Container != null)
            {
                gesture = new TouchNSClickGestureRecognizer(effect, Container);
                Container.AddGestureRecognizer(gesture);
                Container.AddSubview(mouseTrackingView = new MouseTrackingView(effect));
            }
        }
        protected override void OnDetached()
        {
            if (effect?.Element == null)
            {
                return;
            }

            mouseTrackingView?.RemoveFromSuperview();
            mouseTrackingView?.Dispose();
            mouseTrackingView = null;
            effect.Element    = null;
            effect            = null;
            if (gesture != null)
            {
                Container?.RemoveGestureRecognizer(gesture);
            }

            gesture?.Dispose();
            gesture = null;
        }