protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
//e.Graphics.DrawString(string.Format("x:{0} y:{1}", _offsetX, _offsetY), new Font("Arial", 12), new SolidBrush(Color.White), 300, 300);
//e.Graphics.DrawString(string.Format("X:{0} Y:{1} Width:{2} Height:{3}", _scrollAreaWidth, _scrollAreaHeight, AutoScrollPosition.X, AutoScrollPosition.Y), new Font("Arial", 12), new SolidBrush(Color.White), 40, 40);
//e.Graphics.DrawString(string.Format("x:{0} y:{1}", MousePosition.X, MousePosition.Y), new Font("Arial", 12), new SolidBrush(Color.White), 40, 40);
RectangleF canvas = GetCanvas();
AutoScrollMinSize = new Size((int)(canvas.Width), (int)(canvas.Height));
UpdateBounds();
AutoScrollMargin = new Size();
if (canvas.Width <= ClientSize.Width && canvas.Height <= ClientSize.Height)
{
AutoScrollPosition = new Point(0, 0);
AutoScroll = false;
HorizontalScroll.Visible = false;
VerticalScroll.Visible = false;
HScroll = false;
VScroll = false;
}
else
{
AutoScroll = true;
}
e.Graphics.TranslateTransform(AutoScrollPosition.X, AutoScrollPosition.Y);
canvas = GetCanvas();
_currentDelta = GetDeltaForCanvas(canvas);
PointF offset = PictureOffset;
canvas.Offset(offset);
var delta = _currentDelta;
using (Brush br = new SolidBrush(CustomBackColor))
{
e.Graphics.FillRectangle(br, new RectangleF(canvas.X + delta.X, canvas.Y + delta.Y, canvas.Width, canvas.Height));
}
foreach (var primitive in _allPainting)
{
DrawPrimitive(primitive, e.Graphics, _zoom, new PointF(offset.X + delta.X, offset.Y + delta.Y));
}
if (_currentPrimitive != null)
{
DrawPrimitive(_currentPrimitive, e.Graphics, _zoom, new PointF(offset.X + delta.X, offset.Y + delta.Y));
}
if (_shapeControl.Primitive != null)
{
_shapeControl.Primitive = _shapeControl.Primitive;
_shapeControl.Draw(e.Graphics, new PointF(offset.X + delta.X, offset.Y + delta.Y), _zoom);
}
var property = FindPorpertyControl();
if (property != null)
{
property.Zoom = (int) (_zoom*100);
}
NormalizeEx();
UpdatePropertyControlPosition();
}