/// <summary> /// 获取 引脚绘画位置 /// </summary> /// <param name="direction">方向</param> /// <returns></returns> protected virtual Point GetPinPosition(FCPintDirection direction, FCPin pin) { if (pin.DrawLocation == Point.Empty) { switch (direction) { case FCPintDirection.Left: pin.DrawLocation = new Point(Size.Width / 2 - PinLeft.Size.Width, Size.Height / 2 - PinLeft.Size.Height); break; case FCPintDirection.Top: pin.DrawLocation = new Point(Size.Width / 2 - PinTop.Size.Width, Size.Height / 2 - PinTop.Size.Height); break; case FCPintDirection.Right: pin.DrawLocation = new Point(Size.Width / 2 - PinRight.Size.Width, Size.Height / 2 - PinRight.Size.Height); break; case FCPintDirection.Bottom: pin.DrawLocation = new Point(Size.Width / 2 - PinBottom.Size.Width, Size.Height / 2 - PinBottom.Size.Height); break; } } return(pin.DrawLocation); }
/// <summary> /// 移除引脚 /// </summary> /// <param name="direction">位置</param> public void RemovePin(FCPintDirection direction) { switch (direction) { case FCPintDirection.Left: PinLeft = null; pinLeft = false; break; case FCPintDirection.Top: PinTop = null; pinTop = false; break; case FCPintDirection.Right: PinRight = null; pinRight = false; break; case FCPintDirection.Bottom: pinBottom = false; PinBottom = null; break; } }
/// <summary> /// 添加引脚 /// </summary> /// <param name="pin">引脚</param> /// <param name="direction">位置</param> public void AddPin(FCPin pin, FCPintDirection direction) { switch (direction) { case FCPintDirection.Left: PinLeft = pin; pinLeft = true; break; case FCPintDirection.Top: PinTop = pin; pinTop = true; break; case FCPintDirection.Right: PinRight = pin; pinRight = true; break; case FCPintDirection.Bottom: PinBottom = pin; pinBottom = true; break; } }
protected virtual void OnDrawPin(Graphics g, FCPintDirection direction, Point moveOffest) { switch (direction) { case FCPintDirection.Left: PinLeft.OnDraw(g, GetPinPosition(direction, PinLeft), moveOffest); break; case FCPintDirection.Top: PinTop.OnDraw(g, GetPinPosition(direction, PinTop), moveOffest); break; case FCPintDirection.Right: PinRight.OnDraw(g, GetPinPosition(direction, PinRight), moveOffest); break; case FCPintDirection.Bottom: PinBottom.OnDraw(g, GetPinPosition(direction, PinBottom), moveOffest); break; } }