Отображение элементов управления в альфа-смешанной форме

StackOverflow https://stackoverflow.com/questions/143338

Вопрос

Я попробовал Visual C # Kicks код для альфа-смешанной формы.Это работает (как только я удаляю TransparencyKey собственность);то есть, я могу использовать W3C's Альфа-тестовое изображение в формате PNG и увидеть другие окна внизу, но делает все элементы управления в форме невидимыми.Предположительно, они просто не окрашены, как OnPaint переопределяется.Я попытался вызвать суперкласс OnPaint:

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    UpdateFormDisplay()

    MyBase.OnPaint(e)
End Sub

, но это ничего не изменило.(Зовет MyBase.OnPaint Первый это тоже не имеет никакого значения.)

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

Элементы управления, кстати, не нуждаются в прозрачности;прозрачность PNG действительно важна только по внешним краям.Так что подделать это, добавив поверх всего этого еще одну форму (при этом две всегда движутся в тандеме), может быть достаточно, но я бы предпочел более плавное решение.

Это было полезно?

Решение

В любом случае, странно, что в этой статье рассматривается альфа-преобразованная форма с элементами управления:

http://www.codeproject.com/KB/miscctrl/AlphaForm.aspx

Другие советы

Попробуйте поместить это в вашу форму ctor после InitializeComponents();

База.setStyle(стили управления.Оптимизирован двойной буфер | стили управления.Все элементы рисования в WMPAINT | стили управления.Пользовательская краска, true);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top