/// <summary>
 /// Get the touched view range.
 /// </summary>
 /// <param name="x">x value of the tap (on pin device)</param>
 /// <param name="y">y value of the tap (on pin device)</param>
 /// <param name="s">visible screen</param>
 /// <returns>touched view range</returns>
 public BrailleIOViewRange GetTouchedViewRange(double x, double y, BrailleIOScreen s)
 {
     if (s != null)
     {
         OrderedDictionary viewRanges = s.GetViewRanges();
         if (viewRanges.Count > 0)
         {
             object[] keys = new object[viewRanges.Keys.Count];
             viewRanges.Keys.CopyTo(keys, 0);
             for (int i = keys.Length - 1; i >= 0; i--)
             {
                 BrailleIOViewRange vr = viewRanges[keys[i]] as BrailleIOViewRange;
                 if (vr != null && vr.IsVisible())
                 {
                     if (x >= vr.GetLeft() && x <= (vr.GetLeft() + vr.GetWidth()))
                     {
                         if (y >= vr.GetTop() && y <= (vr.GetTop() + vr.GetHeight()))
                         {
                             return(vr);
                         }
                     }
                 }
             }
         }
     }
     return(null);
 }