UIElement HitTestOverItem(TouchEventArgs e, bool drag, bool v2, bool v1, bool other)
{
if (e.Handled)
return null;
TouchPoint pt = e.GetTouchPoint(this._list as IInputElement);
hitResultsList.Clear();
if (v2)
VisualTreeHelper.HitTest(this._list, null,
new HitTestResultCallback(HitTestResult_Tap_v2),
new PointHitTestParameters(new Point(pt.Position.X, pt.Position.Y)));
if (v1)
VisualTreeHelper.HitTest(this._list, null,
new HitTestResultCallback(HitTestResult_Tap_v1),
new PointHitTestParameters(new Point(pt.Position.X, pt.Position.Y)));
if (other)
VisualTreeHelper.HitTest(this._list, null,
new HitTestResultCallback(HitTestResult_Tap_other),
new PointHitTestParameters(new Point(pt.Position.X, pt.Position.Y)));
if (hitResultsList.Count > 0)
{
Type t_item = null;
if (other) t_item = Type.GetType("nature_net.user_controls.collection_listbox_item");
if (v1) t_item = Type.GetType("nature_net.user_controls.item_generic");
if (v2) t_item = Type.GetType("nature_net.user_controls.item_generic_v2");
if (t_item == null) return null;
if (hitResultsList[hitResultsList.Count - 1].GetType() == t_item)
{
if (!drag)
{
return (UIElement)hitResultsList[hitResultsList.Count - 1];
}
if (hitResultsList.Count > 1)
{
for (int counter = 0; counter < hitResultsList.Count - 1; counter++)
{
Type t1 = hitResultsList[counter].GetType();
Type t2 = null;
if (!other)
t2 = Type.GetType("System.Windows.Controls.Border, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
else
t2 = Type.GetType("System.Windows.Controls.Image, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
if (hitResultsList[counter].GetType() == t2)
{
FrameworkElement i2 = (FrameworkElement)hitResultsList[counter];
if (i2.Name == "right_panel_border" || i2.Name == "drag")
return (UIElement)hitResultsList[hitResultsList.Count - 1];
}
}
}
}
}
return null;
}