C# Winform控件在处理透明PNG文件时出现的问题
发布时间
阅读量:
阅读量
在使用C# Winform进行界面开发过程中,经常会遇到一些细节性的问题。例如,在贴附透明的PNG图片时,图片的透明效果未能正常显示,这个问题可以通过设置属性:外观/BackColor(Web Transparent)来加以解决。
然而,当多个控件如PictureBox同时使用透明PNG图片时,若存在控件之间的重叠区域,期望实现的是该重叠部分能够透视下方控件的内容。但在实际测试中发现,尽管重叠区域对整体框架背景实现了透明效果,却无法穿透至下方的控件。最终通过查阅网络资源获得了一段代码,成功解决了这一难题。
具体操作方法为:对每个控件调用ControlTrans(pic, pic.Image)函数处理后进行层叠布局即可实现透明效果。
///
/// 依据图像生成GraphicsPath路径
///
/// GIF或PNG格式图像
///
在应用该代码时需进入项目属性->生成选项,并勾选"允许不安全代码"。这是因为代码中涉及指针操作,在C#中使用指针属于不安全操作,具体信息可参考MSDN文档。
private unsafe static GraphicsPath subGraphicsPath(Image img)
{
全部评论 (0)
还没有任何评论哟~
