Я думаю, поскольку вы используете UpdateLayeredWindow
, «нормальный» механизм рисования отключен, то есть сообщения WM_PAINT не отправляются в окно, а библиотека WinForms не имеет возможности визуализировать элементы управления Label
.
Я обнаружил эту статью об использовании многослойных окон на MSDN:
Обратите внимание, что при использовании UpdateLayeredWindow
приложение не должно отвечать на WM_PAINT
или другие сообщения рисования, поскольку оно уже предоставило визуальное представление для окна, и система позаботится о сохранении этого изображения, его составлении и отображении на экране.UpdateLayeredWindow
довольно мощный, но часто требует изменения способа рисования существующего приложения Win32.
Так что я боюсь, что WinForms не сможет работать вместе с вашим подходом.Даже если бы это было так, вы, скорее всего, получили бы неприятные результаты, поскольку «настоящую» прозрачность нелегко сделать с помощью winforms (т. Е. Метки не будут отображаться прозрачно, но будут отображаться цветом фона родительских форм)