/// <summary>
        /// Verifies whether control is visible
        /// </summary>
        /// <param name="viewName"></param>
        /// <param name="controlName"></param>
        /// <param name="waitTime"></param>
        /// <param name="dynamicVariable"></param>
        /// <returns>true:control visible on screen;false:not visible</returns>
        public static bool VerifyControlVisible(string viewName, string controlName, int waitTime = WaitTime.DefaultWaitTime, string dynamicVariable = "")
        {
            Logger.InsertLogLine("Verify Control visible - Control: " + controlName + " in View : " + viewName);
            bool ControlVisible = false;
            Control control = PopulateControl(viewName, controlName, dynamicVariable);
            XamlButton xamlButton = new XamlButton(xamlAppWindow);
            foreach (string key in control.SearchProperties.Keys)
            {
                xamlButton.SearchProperties.Add(key, control.SearchProperties[key]);
            }
            xamlButton.WindowTitles.Add(windowName);
            xamlButton.WaitForControlExist(waitTime);

            Point point = new Point();
            ControlVisible = xamlButton.TryGetClickablePoint(out point);

            return ControlVisible;
        }
 /// <summary>
 /// Double Clicks specific screen coordinates
 /// </summary>
 /// <param name="x1"></param>
 /// <param name="y1"></param>
 public static void DoubleClick(int x1, int y1)
 {
     Logger.InsertLogLine("Double Click on coordinates X1: " + x1.ToString() + "Y1: " + y1.ToString());
     Point point1 = new Point(x1, y1);
     Gesture.DoubleTap(point1);
 }
 /// <summary>
 /// Stretch the screen at specific coordinates
 /// </summary>
 /// <param name="x1">x pos1</param>
 /// <param name="y1">y pos 1</param>
 /// <param name="x2">x pos2 to slide</param>
 /// <param name="y2">y pos2 to slide</param>
 /// <param name="distance">distance to stretch</param>
 public static void Stretch(int x1, int y1, int x2, int y2, uint distance)
 {
     Logger.InsertLogLine("Stretch on coordinates X1: " + x1.ToString() + "Y1: " + y1.ToString() + " to coordinates X2:" + x2.ToString() + "Y2:" + y2.ToString() + "Unit distance:" + distance.ToString());
     Point point1 = new Point(x1, y1);
     Point point2 = new Point(x2, y2);
     Gesture.Stretch(point1, point2, distance);
 }
 /// <summary>
 /// Stretch a control available
 /// </summary>
 /// <param name="viewName">from controls.xml</param>
 /// <param name="controlName">from controls.xml</param>
 /// <param name="relativeX1">initial pos x</param>
 /// <param name="relativeY1">initial pos y</param>
 /// <param name="relativeX2">relative pos x</param>
 /// <param name="relativeY2">relative pos x</param>
 /// <param name="distance">distance to stretch</param>
 /// <param name="waitTime"></param>
 /// <param name="dynamicVariable"></param>
 public static void StrechControl(string viewName, string controlName, int relativeX1, int relativeY1, int relativeX2, int relativeY2, uint distance, int waitTime = WaitTime.DefaultWaitTime, string dynamicVariable = "")
 {
     Logger.InsertLogLine("Double Click on control: " + controlName + " in View : " + viewName + "Relative pos X1: " + relativeX1.ToString() + "Y1: " + relativeY1.ToString() + " to relative pos X2:" + relativeX2.ToString() + "relativeY2:" + relativeY2.ToString() + "Unit distance:" + distance.ToString());
     Point point1 = new Point(relativeX1, relativeY1);
     Point point2 = new Point(relativeX2, relativeY2);
     Control control = PopulateControl(viewName, controlName, dynamicVariable);
     xamlControl = GetXamlControl(control, dynamicVariable, waitTime);
     Gesture.Stretch(xamlControl, point1, point2, distance);
 }
 /// <summary>
 /// Slides the screen
 /// </summary>
 /// <param name="x1">x pos1</param>
 /// <param name="y1">y pos 1</param>
 /// <param name="x2">x pos2 to slide</param>
 /// <param name="y2">y pos2 to slide</param>
 public static void Slide(int x1, int y1, int x2, int y2)
 {
     Logger.InsertLogLine("Slide on coordinates X1: " + x1.ToString() + "Y1: " + y1.ToString() + " to coordinates X2:" + x2.ToString() + "Y2:" + y2.ToString());
     Point point1 = new Point(x1, y1);
     Point point2 = new Point(x2, y2);
     Gesture.Slide(point1, point2);
 }
 public static void PressHold(int x1, int y1)
 {
     Logger.InsertLogLine("PressHold on coordinates X1: " + x1.ToString() + "Y1: " + y1.ToString());
     Point point1 = new Point(x1, y1);
     Gesture.PressAndHold(point1);
 }
 /// <summary>
 /// Move the mouse to a specific point
 /// </summary>
 /// <param name="pointX">int: x position</param>
 /// <param name="pointY">int: y position</param>
 public static void MouseMoveToAPosition(int pointX, int pointY)
 {
     Point point1 = new Point(pointX, pointY);
     Mouse.Hover(point1);
 }