Как нарисовать нумерованные кнопки и сохранить их в файлах на C#
Этот пример очень похож на предыдущий Нарисуйте пронумерованные круги и сохраните их в файлах на C# , за исключением того, что рисует круги, чтобы они выглядели как пронумерованные кнопки. Следующий код показывает, как программа рисует фоны окружностей.
// Заполните фон.
const int margin = 2;
int rect_width = width - 2 * margin;
if (rect_width < 1) rect_width = 1;
Rectangle outer_rect = new Rectangle(margin, margin,
rect_width, rect_width);
using (LinearGradientBrush bg_brush = new LinearGradientBrush(
outer_rect, Color.White, bg_color,
LinearGradientMode.BackwardDiagonal))
{
gr.FillEllipse(bg_brush, outer_rect);
}
rect_width = width - 2 * (margin + border_width);
if (rect_width < 1) rect_width = 1;
Rectangle inner_rect = new Rectangle(
margin + border_width, margin + border_width,
rect_width, rect_width);
using (LinearGradientBrush bg_brush = new LinearGradientBrush(
inner_rect, bg_color, Color.White,
LinearGradientMode.BackwardDiagonal))
{
gr.FillEllipse(bg_brush, inner_rect);
}
Чтобы сделать изображения, которые выглядят как пронумерованные кнопки, код сначала создает прямоугольник, который включает в себя область растрового изображения минус 2-пиксельное поле по краям. Он использует этот прямоугольник, чтобы заполнить фон кругом, который оттеняет белый цвет в правом верхнем углу на цвет фона в левом нижнем углу.
Далее код повторяет те же шаги с двумя изменениями. Сначала он уменьшает размер прямоугольника, чтобы сделать меньший круг, поэтому пространство между ними выглядит как заштрихованная граница. Во-вторых, он отменяет затенение, поэтому внутренние круги оттеняют белый цвет в нижнем левом углу до цвета фона в правом верхнем углу.
