打开表单时更改窗口不透明度

Posted

技术标签:

【中文标题】打开表单时更改窗口不透明度【英文标题】:Change window opacity when opening a form 【发布时间】:2011-04-28 15:37:44 【问题描述】:

我正在尝试在加载前自动更改表单的不透明度。 我正在使用内置的设置功能来保存窗口应该具有的不透明度值。 问题是,当我调试我的应用程序时,一切正常,当我编译它并尝试打开可执行文件时,窗口就消失了......我没有收到任何错误。

这就是我正在尝试的方式:

首先在设置中有一个名为不透明度(int)的值,范围为0-100

    private void Form1_Load(object sender, EventArgs e)
    
        this.Opacity = WindowsFormsApplication1.Properties.Settings.Default.opacity * 0.01;
    

【问题讨论】:

你的设置有什么价值?我创建了一个 Windows 应用程序,将不透明度设置为 50,将 .exe 复制到桌面并运行它没有问题。 【参考方案1】:

您的问题是不透明度值 1.0 完全可见,0.0 完全不可见。任何高于 1.0 的内容也都视为完全可见。


编辑

好的,所以在重新阅读您的问题之后......也许不是使用默认值,而是使用像 0.5 这样的常量来测试它。

【讨论】:

我知道。问题是当我运行exe时,窗口根本没有打开。只有任务栏上的图标。当我调试它时,它工作得很好......【参考方案2】:

当您调试时,您保存的设置将在运行之间保持不变。部署时,它会复制默认设置文件。

在运行发布 exe 时检查设置文件 opacity 是否实际加载正确。我有一种感觉,要么默认为 0,要么没有加载。

【讨论】:

我有同样的想法...我可以从我的内置设置中更改值,它可以很好地写入 xml 文件...具有正确的值。

以上是关于打开表单时更改窗口不透明度的主要内容,如果未能解决你的问题,请参考以下文章

透明小部件不随其父级移动

透明 CWnd 过期时删除打开对话框的窗口句柄

如何通过设置窗口实时控制程序的不透明度?

iPad ios 8.4 中不触发窗口加载事件

iPad ios 8.4 中不触发窗口加载事件

html 更改任何表单域上的背景透明度