Как нарисовать нумерованные кнопки и сохранить их в файлах на 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-пиксельное поле по краям. Он использует этот прямоугольник, чтобы заполнить фон кругом, который оттеняет белый цвет в правом верхнем углу на цвет фона в левом нижнем углу.
Далее код повторяет те же шаги с двумя изменениями. Сначала он уменьшает размер прямоугольника, чтобы сделать меньший круг, поэтому пространство между ними выглядит как заштрихованная граница. Во-вторых, он отменяет затенение, поэтому внутренние круги оттеняют белый цвет в нижнем левом углу до цвета фона в правом верхнем углу.