protected override void OnLatePaint(PaintEventArgs e)
{
base.OnLatePaint(e);
e.Graphics.DrawRectangle(new Pen(BorderColor), 0, 0, Width, Height);
/*if (!AlwaysFocused && !Focused)
* e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(64, 180, 180, 180)), 0, 0, Width, Height);*/
var g = e.Graphics;
#region Show resize.
if (HighlightResizeBorders && !ResizeIcon)
{
if (ClientRectangle.Contains(PointToClient(MousePosition)))
{
if (_resizeShow == DNDResizeType.None)
{
_resizeAlpha = MathHelper.FloatLerp(_resizeAlpha, 0, 1);
}
else
{
_resizeAlpha = MathHelper.FloatLerp(_resizeAlpha, 255, 1);
}
}
else
{
_resizeAlpha = MathHelper.FloatLerp(_resizeAlpha, 0, 1);
}
//SolidBrush resizeBrush = new SolidBrush(Color.FromArgb((int)_resizeAlpha, 8, 122, 204));
if (_resizeAlpha > 0)
{
switch (_resizeShow)
{
case DNDResizeType.Right:
//g.FillRectangle(resizeBrush, Width - _resizeOffset, 0, _resizeOffset, Height);
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowRight,
Width - ApplicationBehaviour.Resources.Images.ArrowRight.width,
Height / 2 - ApplicationBehaviour.Resources.Images.ArrowRight.height / 2,
ApplicationBehaviour.Resources.Images.ArrowRight.width,
ApplicationBehaviour.Resources.Images.ArrowRight.height,
Color.FromArgb((int)_resizeAlpha, Color.White));
break;
case DNDResizeType.RightDown:
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowRight,
Width - ApplicationBehaviour.Resources.Images.ArrowRight.width,
Height / 2 - ApplicationBehaviour.Resources.Images.ArrowRight.height / 2,
ApplicationBehaviour.Resources.Images.ArrowRight.width,
ApplicationBehaviour.Resources.Images.ArrowRight.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowDown,
Width / 2 - ApplicationBehaviour.Resources.Images.ArrowDown.width / 2,
Height - ApplicationBehaviour.Resources.Images.ArrowDown.height,
ApplicationBehaviour.Resources.Images.ArrowDown.width,
ApplicationBehaviour.Resources.Images.ArrowDown.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
//g.FillRectangle(resizeBrush, Width - _resizeOffset, 0, _resizeOffset, Height - _resizeOffset);
//g.FillRectangle(resizeBrush, 0, Height - _resizeOffset, Width, _resizeOffset);
break;
case DNDResizeType.Down:
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowDown,
Width / 2 - ApplicationBehaviour.Resources.Images.ArrowDown.width / 2,
Height - ApplicationBehaviour.Resources.Images.ArrowDown.height,
ApplicationBehaviour.Resources.Images.ArrowDown.width,
ApplicationBehaviour.Resources.Images.ArrowDown.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
//g.FillRectangle(resizeBrush, 0, Height - _resizeOffset, Width, _resizeOffset);
break;
case DNDResizeType.LeftDown:
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowLeft,
0,
Height / 2 - ApplicationBehaviour.Resources.Images.ArrowLeft.height / 2,
ApplicationBehaviour.Resources.Images.ArrowLeft.width,
ApplicationBehaviour.Resources.Images.ArrowLeft.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowDown,
Width / 2 - ApplicationBehaviour.Resources.Images.ArrowDown.width / 2,
Height - ApplicationBehaviour.Resources.Images.ArrowDown.height,
ApplicationBehaviour.Resources.Images.ArrowDown.width,
ApplicationBehaviour.Resources.Images.ArrowDown.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
//g.FillRectangle(resizeBrush, 0, 0, _resizeOffset, Height - _resizeOffset);
//g.FillRectangle(resizeBrush, 0, Height - _resizeOffset, Width, _resizeOffset);
break;
case DNDResizeType.Left:
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowLeft,
0,
Height / 2 - ApplicationBehaviour.Resources.Images.ArrowLeft.height / 2,
ApplicationBehaviour.Resources.Images.ArrowLeft.width,
ApplicationBehaviour.Resources.Images.ArrowLeft.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
//g.FillRectangle(resizeBrush, 0, 0, _resizeOffset, Height);
break;
case DNDResizeType.LeftUp:
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowLeft,
0,
Height / 2 - ApplicationBehaviour.Resources.Images.ArrowLeft.height / 2,
ApplicationBehaviour.Resources.Images.ArrowLeft.width,
ApplicationBehaviour.Resources.Images.ArrowLeft.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowUp,
Width / 2 - ApplicationBehaviour.Resources.Images.ArrowUp.width / 2,
0,
ApplicationBehaviour.Resources.Images.ArrowUp.width,
ApplicationBehaviour.Resources.Images.ArrowUp.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
//g.FillRectangle(resizeBrush, 0, _resizeOffset, _resizeOffset, Height - _resizeOffset);
//g.FillRectangle(resizeBrush, 0, 0, Width, _resizeOffset);
break;
case DNDResizeType.Up:
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowUp,
Width / 2 - ApplicationBehaviour.Resources.Images.ArrowUp.width / 2,
0,
ApplicationBehaviour.Resources.Images.ArrowUp.width,
ApplicationBehaviour.Resources.Images.ArrowUp.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
//g.FillRectangle(resizeBrush, 0, 0, Width, _resizeOffset);
break;
case DNDResizeType.RightUp:
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowRight,
Width - ApplicationBehaviour.Resources.Images.ArrowRight.width,
Height / 2 - ApplicationBehaviour.Resources.Images.ArrowRight.height / 2,
ApplicationBehaviour.Resources.Images.ArrowRight.width,
ApplicationBehaviour.Resources.Images.ArrowRight.height,
Color.FromArgb((int)_resizeAlpha, Color.White));
g.DrawTexture(
ApplicationBehaviour.Resources.Images.ArrowUp,
Width / 2 - ApplicationBehaviour.Resources.Images.ArrowUp.width / 2,
0,
ApplicationBehaviour.Resources.Images.ArrowUp.width,
ApplicationBehaviour.Resources.Images.ArrowUp.height,
Color.FromArgb((int)_resizeAlpha, Color.White)
);
//g.FillRectangle(resizeBrush, Width - _resizeOffset, _resizeOffset, _resizeOffset, Height - _resizeOffset);
//g.FillRectangle(resizeBrush, 0, 0, Width, _resizeOffset);
break;
}
}
}
#endregion
}