faisal_ruet Ответов: 4

Как сделать прозрачную кнопку в Visual C#?


У меня проблема с моей программой.Я выбрал картинку в своем приложении windows form. и кнопка Создать над ним. но кнопка скрывает изображение своей области. я хочу сделать свою пуговицу прозрачной. то есть текст кнопки может быть виден, но фон кнопки будет отражать фоновое изображение формы.
Пожалуйста помочь

CodeHawkz

Что мешает вам использовать само изображение в качестве кнопки? :) Если вы используете WPF, это легко достижимо

Sergey Alexandrovich Kryukov

Вы абсолютно правы, но WPF или нет-не имеет большого значения. В определенном смысле "прозрачная кнопка" - это нонсенс. Объект прозрачен, если его можно перемещать,а фоновые элементы видны. Если фон однороден или нет движения, то не имеет значения, является ли верхний элемент прозрачным или нет. Так много разработчиков упускают эту простую вещь.

Пожалуйста, посмотрите мой ответ.
--СА

Sergey Alexandrovich Kryukov

Добавьте тег: "формы".
--СА

4 Ответов

Рейтинг:
2

Pasan Eeriyagama

Ну, на данный момент WinForms не поддерживает такую прозрачность. Возможные решения, которые вы можете использовать,

1. Вывести свой контроль вместо контроля с помощью ButtonBase.
2. Используйте родительский метод: DrawToBitmap (), чтобы получить фон под вашей кнопкой, а затем нарисовать это изображение с помощью OnPaint ().


Sergey Alexandrovich Kryukov

Не так просто: кнопка имеет уникальное поведение: когда мышь выходит, она выглядит нажатой (и наоборот), но событие щелчка генерируется только в том случае, если мышь отпущена в кнопке. Этого не так легко достичь, если вы извлекаете его из контроля. Я сделал это, но это потребовало значительных усилий.
--СА

Sergey Alexandrovich Kryukov

Кроме того: "не поддерживайте прозрачность" - это правильно, но... не имеет отношения к кнопке, потому что в определенном смысле "прозрачная кнопка" - это нонсенс. Объект прозрачен, если его можно перемещать,а фоновые элементы видны. Если фон однороден или нет движения, то не имеет значения, является ли верхний элемент прозрачным или нет. Так много разработчиков упускают эту простую вещь.

Пожалуйста, посмотрите мой ответ.
--СА

Рейтинг:
2

Swinkaran

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

Вы можете просто достичь этого с помощью кнопки.

Сначала создайте кнопку и добавьте любой текст по своему усмотрению.
затем,чтобы включить изображения, перейдите в раздел backgroundimage из Buttonproperty и добавить изображение. Это приведет вас к тому, что вам нужно. Таким образом, ваш текст будет отображаться на вашем фоне.

Посмотрите на этот код,

btnLogin.Text = "This will appear";
            btnLogin.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.PTLY_logo));



Дайте мне знать, если у вас есть какие-либо вопросы по этому вопросу. Спасибо.


Рейтинг:
1

Sergey Alexandrovich Kryukov

«Прозрачная кнопка» в определенном смысле проста в реализации, но в большинстве случаев это нонсенс. Вот почему. Любой объект на экране может считаться полупрозрачным, только если он показан на некотором структурированном фоне, и он движется по этому фону, чтобы зритель мог распознать просвечивающие элементы этого фона. У вас узорчатый фон? Вы хотите переместить кнопки? Если нет, прозрачные и непрозрачные кнопки - это одно и то же, это только вопрос изображения, которое вы можете использовать для рендеринга кнопки, как CodeHawkz упоминал в этом комментарии. Вы можете сделать это с помощью любой библиотеки пользовательского интерфейса. Вам нужно только создать разные изображения для разных состояний кнопок.

—СА


CodeHawkz

Вместо конкретной реализации научите принципы / теорию, лежащие в основе решения, которое он / она может повторно использовать << это то, во что я твердо верю :) И вы сделали это в точности. Мои 5

Sergey Alexandrovich Kryukov

Большое спасибо.
--СА

Рейтинг:
1

mithileshkumar52

выполнить следующие действия
(1)выберите кнопку, а затем перейдите в раздел Свойства ;
(2)напишите название кнопки в тексте;
(3) Выберите фоновое изображение, чем ОК;