Re: Как правильно обращаться с перьями и рисовать в С# ?
От: notacat  
Дата: 14.04.09 10:28
Оценка:
А почему Inflate делаете в одном случае на половину толщины пера, в другом — на толщину пера?
Попробуйте оба раза сделать так:

recf.Inflate(-gpen.Width, -gpen.Width);


потом, вы из какой гипотезы исходите:
— границы прямоугольника рисуются снаружи указанного прямоугольника,
— внутри,
— половина границы снаружи, половина внутри?

Я склоняюсь ко второму варианту, хотя не проверяла.
Лучше всего нарисовать первый прямоугольник, потом уменьшить размер прямоугольника на толщину пера, потом уже внутри этого прямоугольника рисовать второй прямоугольник:

// получаем ссылку на объект графики
Graphics g = e.Graphics;
// создаем перо для рамки графика
Pen gpen = new Pen(Color.Red, 5);
// рисуем рамку графика
g.DrawRectangle(gpen, recf.X, recf.Y, recf.Width, recf.Height);
// уменьшаем размер прямоугольной клиентской области на толщину пера рамки
recf.Inflate(-gpen.Width, -gpen.Width);

gpen.Width = 1;
gpen.Color = Color.Black;
g.DrawRectangle(gpen, recf.X, recf.Y, recf.Width, recf.Height); 
recf.Inflate(-gpen.Width , -gpen.Width );
// рисовать дальше внутри второго прямоугольника
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.