private SortGridViewColumnHeader GetCellColumnHeader(ContextMenu context) { Point point = context.PointToScreen(new Point(0, 0)); Point newPoint = lvResult.PointFromScreen(point); Point headerPoint = new Point(newPoint.X, 4); HitTestResult hitResult = VisualTreeHelper.HitTest(lvResult, headerPoint); if (hitResult == null) return null; SortGridViewColumnHeader gvch = hitResult.VisualHit.VisualParents().OfType<SortGridViewColumnHeader>().FirstOrDefault(); return gvch; }
private static Rect GetContextMenuRect(ContextMenu menu) { var begin = menu.PointToScreen(new Point(0, 0)); var end = menu.PointToScreen(new Point(menu.ActualWidth, menu.ActualHeight)); return new Rect(begin, end); }