protected override void OnRender(DrawingContext dc)
{
Brush brushBackground = SystemColors.ControlBrush;
if (isMouseReallyOver && IsMouseCaptured)
{
brushBackground = SystemColors.ControlDarkBrush;
}
Pen pen = new Pen(Foreground, IsMouseOver ? 2 : 1);
dc.DrawRoundedRectangle(brushBackground, pen, new Rect(new Point(0,0), RenderSize), 4, 4);
formtxt.SetForegroundBrush(IsEnabled ? Foreground : SystemColors.ControlDarkBrush);
Point ptText = new Point(2,4);
switch (HorizontalContentAlignment)
{
case HorizontalAlignment.Left:
ptText.X += Padding.Left;
break;
case HorizontalAlignment.Right:
ptText.X += RenderSize.Width - formtxt.Width - Padding.Right;
break;
case HorizontalAlignment.Center:
case HorizontalAlignment.Stretch:
ptText.X += (RenderSize.Width - formtxt.Width - Padding.Left - Padding.Right)/2;
break;
}
switch (VerticalContentAlignment)
{
case VerticalAlignment.Top:
ptText.Y += Padding.Top;
break;
case VerticalAlignment.Bottom:
ptText.Y += RenderSize.Height - formtxt.Height - Padding.Bottom;
break;
case VerticalAlignment.Center:
case VerticalAlignment.Stretch:
ptText.Y += (RenderSize.Height - formtxt.Height - Padding.Top - Padding.Bottom) / 2;
break;
}
dc.DrawText(formtxt, ptText);
}