Petzold.GetMedieval.MedievalButton.OnRender C# (CSharp) Method

OnRender() protected method

protected OnRender ( System.Windows.Media.DrawingContext dc ) : void
dc System.Windows.Media.DrawingContext
return void
        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);
        }