C#:Form.DoubleBuffered=true会杀死透明性
本文关键字:透明性 true Form DoubleBuffered | 更新日期: 2023-09-27 18:08:05
- 创建新的windows窗体项目
- 设置TransparancyKey&此表单的背景色为"黑色">
- Run
=>表单显示为透明
现在还设置将.DoubleBuffered属性设置为真正的
=>表单不再显示为透明
为什么这样?有没有获得双缓冲透明表单的解决方案?
您不需要担心透明度和双缓冲的TransparencyKey和BackColor属性。将它们保留为默认值,然后重试。然后,如果你真的想让你的背景色是黑色的,试着应用这个值。
以下片段在我的机器上生成了一个50%透明的窗口:
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
DoubleBuffered = true;
AllowTransparency = true;
BackColor = Color.Black;
Opacity = .5;
}
}
我刚刚尝试了您的复制步骤,它对我来说很好。也许这是.Net版本/OS版本/Graphics的某种问题。
作为参考,我正在测试。。。
- 与2010年相比
- Windows 7(32位(
- .Net 4