csDataServerPlugin.PoiGraphic.ComputeStartPositionAndOffset C# (CSharp) Метод

ComputeStartPositionAndOffset() приватный статический Метод

Compute suitable start position within the screen boundary.
private static ComputeStartPositionAndOffset ( MapPoint tapPos, System.Windows.Vector &offset ) : Point
tapPos MapPoint Current location on the screen in map coordinates
offset System.Windows.Vector Offset in screen coordinates.
Результат System.Windows.Point
        private static Point ComputeStartPositionAndOffset(MapPoint tapPos, out Vector offset)
        {
            var offsetX = 0;
            var offsetY = 0;
            var startPosition = AppState.ViewDef.MapControl.MapToScreen(tapPos, true);
            startPosition += new Vector(-300, -200);
            if (startPosition.X < 300) offsetX = (int)(-startPosition.X + Application.Current.MainWindow.Width - 700);
            else if (startPosition.X > Application.Current.MainWindow.Width - 500)
                offsetX = (int)(-startPosition.X + 300);
            if (startPosition.Y < 250) offsetY = (int)(-startPosition.Y + Application.Current.MainWindow.Height - 500);
            else if (startPosition.Y > Application.Current.MainWindow.Height - 400)
                offsetY = (int)(-startPosition.Y + 250);
            offset = new Vector(offsetX, offsetY);
            return startPosition;
        }