private static GestureListenerBehavioursBehaviour GetOrCreateBehaviour(Control element)
        {
            var behavior = element.GetValue(GestureListenerBehavioursBehaviourProperty) as GestureListenerBehavioursBehaviour;

            if (behavior == null)
            {
                behavior = new GestureListenerBehavioursBehaviour(element);
                element.SetValue(GestureListenerBehavioursBehaviourProperty, behavior);
            }

            return(behavior);
        }
        private static void OnSetDoubleTapCommandCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
        {
            var element = dependencyObject as Control;

            if (element != null)
            {
                GestureListenerBehavioursBehaviour behavior = GetOrCreateBehaviour(element);
                behavior.DoubleTapCommand = e.NewValue as ICommand;
            }
            else
            {
                Console.Out.WriteLine("Error: Expected type Control but found " + dependencyObject.GetType().Name);
            }
        }