ControlPaint.DrawBorder () ..... но толще? - PullRequest
2 голосов
/ 04 февраля 2010

У меня есть следующий код, который работает, чтобы нарисовать границу вокруг элемента управления в приложении WinForm 3.5.

Что я не могу понять, так это как ТОЛЩИНА граница, которая рисуется. Я попробовал Inflate(5,5) на ClientRectangle, но это фактически заставило Границу исчезнуть все вместе вместо того, чтобы сделать ее толще.

У меня складывается впечатление, что мне действительно нужно работать с e.Graphics, чтобы достичь этого, но я не могу понять, как я живу.

Идеи

ControlPaint.DrawBorder(
                    e.Graphics, datImmunizationRecieved.ClientRectangle, Color.OrangeRed, ButtonBorderStyle.Solid);

Ответ в действии для дальнейшего использования

Ниже показано, как я реализовал тот же метод, но перегружен ( примечание: оба они находятся внутри Paint_Event )

var borderColor = Color.FromArgb(173, 216, 230);
var borderStyle = ButtonBorderStyle.Solid;
var borderWidth = 3;

ControlPaint.DrawBorder(
                    e.Graphics,
                    lkuNOImmunizationReason.ClientRectangle,
                    borderColor,
                    borderWidth,
                    borderStyle,
                    borderColor,
                    borderWidth,
                    borderStyle,
                    borderColor,
                    borderWidth,
                    borderStyle,
                    borderColor,
                    borderWidth,
                    borderStyle);

1 Ответ

4 голосов
/ 04 февраля 2010

Существует перегрузка для этого метода, которая позволяет указать ширину для всех сторон - http://msdn.microsoft.com/en-us/library/616fkc53.aspx

...