Прозрачные изображения кнопок в C#
Кажется, я продолжаю писать эту программу, потому что мне нужно делать изображения кнопок довольно часто. Я хотел использовать простое изображение с прозрачным фоном для изображения кнопки. К сожалению, MSPaint не знает, как сохранять изображения с прозрачным фоном. К счастью, C# делает.
В этом примере показано, как показано изображение, и сохраняет его в файл с прозрачным фоном. Чтобы сделать другие изображения, вам нужно изменить следующий обработчик события Form_Load, чтобы нарисовать что-то еще.
// Растровое изображение. Bitmap TheBitmap = new Bitmap(16, 16); // Нарисуем изображение для сохранения. private void Form1_Load(object sender, EventArgs e) < // Установите изображение, которое мы рисуем. picCanvas.SizeMode = PictureBoxSizeMode.AutoSize; // Создаем растровое изображение. TheBitmap = new Bitmap(16, 16); using (Graphics gr = Graphics.FromImage(TheBitmap)) < gr.SmoothingMode = SmoothingMode.AntiAlias; // Дайте ему прозрачный фон. gr.Clear(Color.Transparent); // Привлечь. using (Pen the_pen = new Pen(Color.Blue, 3)) < the_pen.EndCap = LineCap.Round; the_pen.StartCap = LineCap.Round; the_pen.LineJoin = LineJoin.Round; // Вниз расширитель. Point[] points = < new Point(3, 2), new Point(8, 7), new Point(13, 2), >; gr.DrawLines(the_pen, points); for (int i = 0; i < points.Length; i++) < points[i].Y += 6; >gr.DrawLines(the_pen, points); //// Расширение расширителя. // Точка [] points = // < // новая точка (3, 13), // новая точка (8, 8), // новая точка (13, 13), //>; //gr.DrawLines (the_pen, points); // for (int i = 0; i & lt; points.Length; i ++) // < // точки [i] .Y - = 6; //>//gr.DrawLines (the_pen, points); > > // Отображение результата. picCanvas.Image = TheBitmap; >
Обработчик событий Load устанавливает свойство SizeMode элемента управления PictureBox в AutoSize, чтобы он сам по себе соответствовал картина. Затем он создает 16-разрядный и 16-разрядный растровый и Graphics объекты для рисования на нем. Он устанавливает свойство SmoothingMode объекта Graphics объекта AntiAlias, чтобы программа произвела ровный результат.
Далее код очищает растровое изображение цветом Transparent. Это придает изображению прозрачный фон.
Затем код выполняет фактический чертеж. В этом случае код делает синюю ручку шириной три пикселя. Он устанавливает свойства StartCap, EndCap и LineJoin для пера, чтобы любые строки, которые он рисует, имели округленные концы и углы. Затем программа использует это перо, чтобы нарисовать две фигуры шеврона вниз. (Комментированный код рисует две направленные вверх формы.)
Код заканчивается отображением полученного изображения.
Если вы откроете меню «Файл» и выберите «Сохранить как», программа отобразит диалог сохранения файла. Если вы выберете файл и нажмите «Сохранить», программа сохранит изображение, вызвав метод SaveBitmapUsingExtension, описанный в сообщении Сохранить изображения в соответствующем формате в зависимости от расширения имени файла в C# . Более подробную информацию см. В коде и этом сообщении.
Как создать прозрачную кнопку с текстом
Как создать прозрачную кнопку?
1.Необходимо, чтобы кнопка принимала за фон изображение, которое находится на фоне. 2. Кнопка.
Как создать открывающиеся окна с текстом и изображениями при нажатии на кнопку
Суть приложения: при нажатии на кнопку открывается окошко с текстом и картинкой. Окно не должно.
Как сделать прозрачную кнопку и перемещять её за курсором ?
Как сделать прозрачную кнопку и перемещать её за курсором а при клике выполнить действие и убрать.
Как создать прозрачную панель?
задача такова, разместить панель на пэинтбоксе, так, что бы панель не перекрывала содержимое.
6578 / 4563 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
Сообщение от Zumhad 
Я хочу создать прозрачную кнопку с текстом и при наведении на прозрачную область кнопка будет менятся. Так вот как правильно сделать прозрачную кнопку winapi или gdi+
Для начала, наверное, создать кнопку с стилем BS_OWNERDRAW и отрисовать её по WM_DRAWITEM
Регистрация: 20.03.2019
Сообщений: 150
Можно пример кодом. Я пока не очень шарю
Добавлено через 13 минут
Все разобрался. А как прозрачную то сделать и текст поставить на нее?
1445 / 1364 / 234
Регистрация: 19.02.2010
Сообщений: 3,824

Сообщение было отмечено Zumhad как решение
Решение
Сообщение от Zumhad 
А как прозрачную то сделать и текст поставить на нее?
Не проверял — чисто как идея.
Ставим связанному с кнопкой контексту устройства нужный режим работы с фоном: SetBkMode(GetDC(hbutton),TRANSPARENT).
Для отрисовки текста в обработчике WM_DRAWITEM можно затем применить 4 функции (TextOut, ExtTextOut, DrawText, DrawTextEx) — изучаем/экспериментируем, какая подойдёт.
Специально работать с фонтом (через CreateFont и затем SelectObject) не надо — там прозрачность фона для выводимого фонтом текста никак не задаётся. Только лишь для изменения шрифта/размера — если фонт, дефолтно выбираемый контекстом устройства кнопки, окажется неподходящим.
В общем, вывод текста — стандартен, и его как-то изменять вроде бы нет необходимости.
Ну а если указанным использованием SetBkMode(hdc,TRANSPARENT) задача не решается — то надо будет думать дальше. Но вроде бы до gdi+ доходить необходимости нет.
Регистрация: 20.03.2019
Сообщений: 150
Уже получилось вот:
1 2 3 4 5 6 7 8
case WM_CTLCOLORBTN: { HBRUSH hBrushbtn; hBrushbtn = (HBRUSH)GetStockObject(NULL_BRUSH); SetBkMode((HDC)wparam, TRANSPARENT); return ((LRESULT)hBrushbtn); break; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
// // // case WM_DRAWITEM: lpdrawstLogon = (LPDRAWITEMSTRUCT)lparam; if (lpdrawstLogon->hwndItem == hRandom) { HFONT hFont = CreateFont(-24, 0, 0, 0, 0, ANSI_CHARSET, 0U, 0U, 0U, 0U, 0U, 0U, 0U, TEXT("Impact")); HFONT hOldFont = (HFONT)SelectObject(lpdrawstLogon->hDC, hFont); SetTextColor(lpdrawstLogon->hDC, RGB(255, 0, 0)); int len = GetWindowTextLength(lpdrawstLogon->hwndItem) + 1; LPTSTR lpBuff = new TCHAR[len]; len = GetWindowText(lpdrawstLogon->hwndItem, lpBuff, len); DrawText(lpdrawstLogon->hDC, lpBuff, len, &lpdrawstLogon->rcItem, DT_CENTER }
Создание прозрачного элемента управления
Когда элемент управления становится прозрачным, цвет фона не отображается, поэтому свойство BackColor игнорируется. Однако настройка для свойства BackColor не изменяется, когда элемент управления является прозрачным.
См. также
- Коллекции, элементы управления и объекты Microsoft Forms
- Справочник по Microsoft Forms
- Темы по основам Microsoft Forms
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Отправить и просмотреть отзыв по
MnogoBlog
Как создать сайт на wordpress, настроить и оптимизировать wordpress


CSS прозрачная кнопка (кнопка призрак)
MnogoBlog > WordPress > Дизайн > CSS и теги > CSS прозрачная кнопка (кнопка призрак)
Как сделать прозрачную кнопку на сайте с помощью CSS – кнопка призрак. Вот некоторые варианты:
Скачать исходники для статьи можно ниже
Как будут выглядеть создаваемые нами прозрачные кнопки можно посмотреть здесь – топ прозрачных кнопок на CSS.
1. Простая кнопка-призрак
Вот код самой кнопки, к которой мы применим CSS стили для превращения её в кнопку-призрак.
А вот CSS стили, для сайтов на wordpress – они хранятся в файле стилей – style.css – админка wordpress, пункт “Внешний вид”, подпункт “Редактор”, справа в списке шаблонов откроется файл style.css.
.ghost-button < display: inline-block; width: 200px; padding: 8px; color: #fff; border: 1px solid #fff; text-align: center; outline: none; text-decoration: none; >.ghost-button:hover, .ghost-button:active
2. Кнопка-призрак с закругленными краями
CSS стили кнопки:
.ghost-button-rounded-corners < display: inline-block; width: 200px; padding: 8px; color: #fff; border: 1px solid #fff; border-radius: 5px; text-align: center; outline: none; text-decoration: none; >.ghost-button-rounded-corners:hover, .ghost-button-rounded-corners:active
3. С простым эффектом перехода
CSS стили кнопки:
.ghost-button-transition < display: inline-block; width: 200px; padding: 8px; color: #fff; border: 2px solid #fff; text-align: center; outline: none; text-decoration: none; transition: background-color 0.2s ease-out, color 0.2s ease-out; >.ghost-button-transition:hover, .ghost-button-transition:active
4. С толстой рамкой
CSS стили кнопки:
.ghost-button-thick-border < display: inline-block; width: 200px; font-weight: bold; padding: 8px; color: #fff; border: 3px solid #fff; text-align: center; outline: none; text-decoration: none; transition: background-color 0.2s ease-out, color 0.2s ease-out; >.ghost-button-thick-border:hover, .ghost-button-thick-border:active
5. Полупрозрачное затемнение
CSS стили кнопки:
.ghost-button-semi-transparent < display: inline-block; width: 200px; padding: 8px; color: #fff; border: 2px solid #fff; text-align: center; outline: none; text-decoration: none; transition: background-color 0.2s ease-out, border-color 0.2s ease-out; >.ghost-button-semi-transparent:hover, .ghost-button-semi-transparent:active < background-color: #fff; /* fallback */ background-color: rgba(255, 255, 255, 0.4); border-color: #fff; /* fallback */ border-color: rgba(255, 255, 255, 0.4); transition: background-color 0.3s ease-in, border-color 0.3s ease-in; >
6. С изменением цвета рамки
CSS стили кнопки:
.ghost-button-border-color < display: inline-block; width: 200px; padding: 8px; color: #fff; border: 2px solid #fff; text-align: center; outline: none; text-decoration: none; transition: border-color 0.3s ease-out, color 0.3s ease-out; >.ghost-button-border-color:hover, .ghost-button-border-color:active
7. С заливкой кнопки цветом
CSS стили кнопки:
.ghost-button-full-color < display: inline-block; width: 200px; padding: 8px; color: #fff; background-color: transparent; border: 2px solid #fff; text-align: center; outline: none; text-decoration: none; transition: color 0.3s ease-out, background-color 0.3s ease-out, border-color 0.3s ease-out; >.ghost-button-full-color:hover, .ghost-button-full-color:active
8. С изменением размера кнопки
CSS стили кнопки:
.ghost-button-size-transition < display: inline-block; width: 200px; height: 25px; line-height: 25px; margin: 0 auto; padding: 8px; color: #fff; border: 2px solid #fff; text-align: center; outline: none; text-decoration: none; transition: width 0.3s ease-out, height 0.3s ease-out, line-height 0.3s ease-out; >.ghost-button-size-transition:hover, .ghost-button-size-transition:active
Похожие записи:
Запись обновлена Апрель 22, 2016 и опубликована в рубрике CSS и теги by Константин .
CSS прозрачная кнопка (кнопка призрак) : 1 комментарий
- ВолодИюнь 8, 2017 в 17:16 Вот простая прозрачная кнопка без лишнего кода.
color: #00e0d0; /*цвет текста*/
background: rgba(0, 0, 0, 0); /* прозрачность фона*/
border-radius: 3px; /*закругление рамки*/
border-color: #00e0d0; /*цвет рамки*/
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
