我使用this code中的the code project来显示.png图片(具有透明度)。在第87行,我尝试添加一个标签,其中我成功但不知何故它不会出现在表单上。我尝试过刷新,无效,但没有一个有效。也许有人可以指出我正确的方向。
答案 0 :(得分:1)
我认为,因为你正在使用UpdateLayeredWindow
,所以禁用了“普通”绘制机制,即没有向窗口发送WM_PAINT消息,并且WinForms库没有机会呈现Label
控件。
我发现this article关于在MSDN上使用分层窗口说明:
请注意,使用
UpdateLayeredWindow
时,应用程序不需要响应WM_PAINT
或其他绘画消息,因为它已经提供了窗口的可视化表示,系统将负责存储该图像,组合它,并在屏幕上呈现它。UpdateLayeredWindow
功能非常强大,但通常需要修改现有Win32应用程序的绘制方式。
所以我担心WinForms无法与你的方法一起工作。即使它会,你可能会得到令人不快的结果,因为使用winforms不容易做到“真正的”透明度(即标签不会透明地显示,但会绘制父窗体背景颜色)