Я попробовал Visual C# Kicks code for an alpha-blended form. Это работает (как только я удаляю свойство TransparencyKey
); то есть я могу использовать W3C PNG alpha test image и видеть другие окна под ним, но делает все элементы управления в форме невидимыми. Предположительно, они просто не окрашены, поскольку OnPaint
переопределен. Я попытался назвать суперкласса OnPaint
:Отображение элементов управления в альфа-смешанной форме
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
UpdateFormDisplay()
MyBase.OnPaint(e)
End Sub
, но это ничего не изменило. (Вызов MyBase.OnPaint
первый не делает никакой разницы ни.)
К сожалению, большинство статей о альфа-смешением форм сосредоточиться на чистых заставок без какого-либо контроля над ними, - но нам нужна панель, которая показывает первые подписи в полях , затем индикатор выполнения.
Элементы управления, кстати, не нуждаются в прозрачности; на внешних краях действительно важна прозрачность PNG. Так что подделка этого, добавив еще одну форму поверх всего (с двумя, всегда движущимися в тандеме), может быть достаточно, но я бы предпочел более плавное решение.
Это решение * делает * в основном использование двухобразного трюка, хотя: «дырки» разрезаны в полупрозрачную форму; форма под ним может иметь контроль в этих местах. В любом случае, в то время как в то же время это элегантное решение, похоже, работает достаточно хорошо. Благодаря! – 2008-09-27 16:04:33