Как сделать прозрачную кнопку в c
Перейти к содержимому

Как сделать прозрачную кнопку в c

  • автор:

Изменение стандартного цвета выделения кнопки при наведении

Добавляю разноцветную кнопку, навожу мышку и тут бац это мерзкое синее выделение. Может кто знает как исправить? Использую Windows Forms.

Отслеживать
77.2k 6 6 золотых знаков 58 58 серебряных знаков 126 126 бронзовых знаков
задан 26 окт 2017 в 16:26
Микола Мірчук Микола Мірчук
334 2 2 серебряных знака 13 13 бронзовых знаков
.NET Насколько я знаю
26 окт 2017 в 16:29
емм. тогда без разницы? (могу использовать оба)
26 окт 2017 в 16:31

Нет он практического значения програма вигледит уродливо, и я готов использовать что угодно для обеспечения качества

26 окт 2017 в 16:34
– user227049
26 окт 2017 в 16:35

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если на WPF, то вот небольшой стиль:

        

Ну на WinForms через свойство FlatAppearance

введите сюда описание изображения

FlatStyle надо сделать равным Flat то есть будет плоская как в 10 винде.

Отслеживать
18.6k 4 4 золотых знака 32 32 серебряных знака 45 45 бронзовых знаков
ответ дан 26 окт 2017 в 16:47
1,326 13 13 серебряных знаков 23 23 бронзовых знака
Спасибо! А на winforms никак?
26 окт 2017 в 17:14
Дополнил ответ у
26 окт 2017 в 17:29

@Санитариум, вы скрин такой специально выложили, чтоб мы вашу обоину заценили? 3/4 можно обрезать и сэкономить людям траффик заодно. Поставил минус за оформление, исправите — уберу

26 окт 2017 в 17:55

И ещё, чёрный обводящий овал на тёмно-сером фоне очень плохо различим. Обведите лучше красным. // cc: @Андрей

26 окт 2017 в 18:08

И да, мы уже поняли, что у вас крутая игровая видеокарта в SLI режиме и четыре монитора. Теперь обрежьте, пожалуйста, картинку.

C # Windows Form Application Прозрачная кнопка

Я новичок в С#. Я хотел бы создать невидимую кнопку, но они доступны для кликов в приложении формы Windows С#. Есть ли способ? Я попробовал BackColor для прозрачного, но это не меняет того факта, что он прозрачен

Asmo 26 май 2012, в 07:10
Поделиться
Возможное дублирование stackoverflow.com/questions/1086621/…
Fur Dworetzky 26 май 2012, в 04:44
Прозрачность для элементов управления в окнах только сейчас работает (не поддерживается)
Mitja Bonca 26 май 2012, в 04:48
Не изобретайте велосипед попробуйте это: stackoverflow.com/questions/1086621/…
user1391380 26 май 2012, в 04:48
Сам ярлык не совсем прозрачный
Asmo 26 май 2012, в 10:31
Показать ещё 2 комментария
Поделиться:

5 ответов

Лучший ответ

Просто попробуйте это.

Нажмите кнопку, которую вы хотите сделать прозрачной. Выберите FlatStyle from Properties и установите его во всплывающее окно. Теперь измените свойство BackColor на Transparent .

Это сделает кнопку прозрачной.

Однако, если вы хотите сделать его прозрачным над PictureBox этот метод не будет работать.

Он работает только на обычном фоне и фоновых изображениях. Надеюсь, что это работает.

Pritam Routh 29 июль 2015, в 10:25
Поделиться
Замечательный! Лучший ответ на данный момент.
Michael Pliskin 30 авг. 2015, в 05:14
Хорошее и простое решение! Спасибо
Pierre-Olivier Pignon 11 окт. 2016, в 04:37

Если вы также хотите прозрачную границу, установите для FlatStyle значение «Flat», а затем для FlatAppearance: BorderSize значение 0 (ноль).

user3091705 24 нояб. 2018, в 17:01
Показать ещё 1 комментарий

btnLink.FlatStyle = FlatStyle.Flat; btnLink.BackColor = Color.Transparent; btnLink.FlatAppearance.MouseDownBackColor = Color.Transparent; btnLink.FlatAppearance.MouseOverBackColor = Color.Transparent; 

user2230410 01 апр. 2013, в 00:12
Поделиться

Предоставьте небольшой контекст, описывающий, как он делает то, что он делает, и, возможно, увеличенный и лучше отформатированный фрагмент кода. Если у вас есть ссылка на то, где вы нашли это, укажите это.

Jordan Dea-Mattson 01 апр. 2013, в 00:07

Установка свойства фона кнопки прозрачной будет по-прежнему оставлять границу. Если вы хотите полностью прозрачную кнопку, выполните одно из двух действий:

Создайте прозрачную панель и назначьте метод событию Click

Создайте пользовательский UserControl, который заполняется только BackColor (устанавливается прозрачным) и назначает метод событию Click.

 public class Invisible_Button : UserControl < protected override void OnMouseMove(MouseEventArgs e) < base.OnMouseMove(e); this.Cursor = Cursors.Hand; >protected override void OnPaint(PaintEventArgs e) < base.OnPaint(e); e.Graphics.FillRectangle(new SolidBrush(this.BackColor), 0, 0, this.Width, this.Height); >> 

Michael Kuczmarski 23 сен. 2016, в 18:41
Поделиться

Справка:

Оригинальную статью и код можно найти по адресу:

Отображение всплывающей подсказки, когда мышь навешивается над отключенным элементом управления

@CodeProject от tetsushmz

Код:

public class TransparentSheet : ContainerControl < public TransparentSheet() < // Disable painting the background. this.SetStyle(ControlStyles.Opaque, true); this.UpdateStyles(); // Make sure to set the AutoScaleMode property to None // so that the location and size property don't automatically change // when placed in a form that has different font than this. this.AutoScaleMode = AutoScaleMode.None; // Tab stop on a transparent sheet makes no sense. this.TabStop = false; >private const short WS_EX_TRANSPARENT = 0x20; protected override CreateParams CreateParams < [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)] get < CreateParams l_cp; l_cp = base.CreateParams; l_cp.ExStyle = (l_cp.ExStyle | WS_EX_TRANSPARENT); return l_cp; >> > 

Объяснение:

Что вам нужно сделать, это использовать данный элемент управления как оверлей на отключенном TextBox (который вы упомянули в одном из своих комментариев). Sibscribe для элемента управления наложением Нажмите событие, и у вас есть щелчок по отключенному элементу управления.

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

Возможно, другой пользовательский интерфейс или по крайней мере завершает его в UserControl, чтобы изолировать эту грязную логику.

Как сделать кнопку прозрачной?

Author24 — интернет-сервис помощи студентам

Начал создавать site пакет и столкнулся с проблемой. Мне надо сделать полностью прозрачную кнопку,но при этом чтобы она работала.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как сделать кнопку прозрачной при наведении?
Я прописываю для кнопки прозрачный цвет при наведении: this.btn.BackColor =.

Как сделать панель (Panel) прозрачной?
день добрый, вопрос: как сделать, что бы фон панели был прозрачный? я рисую линию на панели, под.

Как сделать форму за пределами круга прозрачной
Пишу аналоговые часы. Все получается. Но вот одна проблемка. Часы круглые. Этот круг (элипс в коде).

Зделать кнопку полу прозрачной
Здравствуйте. Подскажите, пожалуйста как сделать чтоб кнопка имела полу прозрачный вид? .

Регистрация: 31.10.2012
Сообщений: 481

Как вариант — натянуть текстуру с полным альфа-каналом. А альтернативой, думаю, можно сделать только в WPF.

Эксперт .NET

1851 / 1327 / 317
Регистрация: 15.06.2012
Сообщений: 5,054
Записей в блоге: 3

ЦитатаСообщение от sss111 Посмотреть сообщение

site пакет

Хз Не знаю что это такое, но в обычном десктопе Windows Forms можно место кнопки использовать PictureBox.

1 2 3 4 5 6 7 8 9
// pictureBox1 // this.pictureBox1.BackColor = System.Drawing.Color.Transparent; this.pictureBox1.Location = new System.Drawing.Point(91, 72); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(70, 135); this.pictureBox1.TabIndex = 1; this.pictureBox1.TabStop = false; this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
TransparentButton.zip (192.1 Кб, 19 просмотров)

Регистрация: 18.07.2013
Сообщений: 4

ЦитатаСообщение от Wolfdp Посмотреть сообщение

Хз Не знаю что это такое, но в обычном десктопе Windows Forms можно место кнопки использовать PictureBox.

1 2 3 4 5 6 7 8 9
// pictureBox1 // this.pictureBox1.BackColor = System.Drawing.Color.Transparent; this.pictureBox1.Location = new System.Drawing.Point(91, 72); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(70, 135); this.pictureBox1.TabIndex = 1; this.pictureBox1.TabStop = false; this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);

Как сделать кнопку прозрачной?

Author24 — интернет-сервис помощи студентам

В Delphi просто свойству flat поставить true, и объект станет прозрачным. В c# это свойство задает кнопке цвет фона, но мне надо именно прозрачность, ибо под кнопкой (что и необходимо сделать прозрачной) находится фотография.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как сделать так что бы кнопка с картинкой была прозрачной?
Я зная что можно сделать кнопке BackColor = transparent но тогда оно отображает фон самой формы а.

Как сделать кнопку на 3 действия?
подскажите пожалуйста как сделать чтобы кнопка выполняла 3 действия над потоком, сначала.

Как сделать кнопку прозрачной?
Начал создавать site пакет и столкнулся с проблемой. Мне надо сделать полностью прозрачную.

Как сделать кнопку прозрачной при наведении?
Я прописываю для кнопки прозрачный цвет при наведении: this.btn.BackColor =.

407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558

this.button1.BackColor = System.Drawing.Color.Transparent; this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;

И кнопка будет прозрачной, правда, при наведении курсора, прозрачность пропадает, т.к. кнопка выделятся.
Также, можно использовать Label, у него тоже есть событие Click.

1 2 3
this.label1.BackColor = System.Drawing.Color.Transparent; this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.label1.Cursor = System.Windows.Forms.Cursors.Hand;

Прозрачность сохраняется при наведении мыши, просто меняется курсор.

Добавлено через 16 минут
Не доглядел! У кнопки еще есть:

this.button1.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent; this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;

Прозрачность сохраняется всегда, но без изменений внешнего вида при наведении и клике смотрится не очень, может быть можно поиграть с полупрозрачностью.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *