繁体   English   中英

在 C# 中使用轨迹栏更改表单中的不透明度不起作用,为什么?

[英]Changing opacity in form with trackbar in C# don't works, why?

我(为了好玩)用C#制作了一个带有trackbar的表单。 我想用它改变表单的Opacity ,所以我写了这个:

private void trackBar1_Scroll(object sender, EventArgs e)
{
    progressBar1.Value = trackBar1.Value;
    System.Windows.Forms.Form.ActiveForm.Opacity = trackBar1.Value;
    label2.Text = trackBar1.Value.ToString();
}

当我启动程序时,如果trackbar的值在 1 到 100 之间,不透明度将为 100%,如果我将trackbar拖动到 0,表单将变得完全透明。

当表单启动时,您只能获得 100% Opacity或 0% Opacity ,还是我想要的也可能?

System.Windows.Forms.Form.Opacity的值介于0.01.0之间,要获得不透明度的百分比,您可以将其乘以100 ,因此1表示fully opaque0表示fully transparent

对于轨迹栏,您应该将其Value转换为0.01.0之间的相应值,因此您应该执行以下操作:

yourForm.Opacity = (double)trackBar1.Value/trackBar1.Maximum;

将数字除以 100。它应该是介于 0 和 1 之间的双精度数

((double)trackBar1.Value) / 100

用这个:

System.Windows.Forms.Form.ActiveForm.Opacity = ((double)(trackBar1.Value) /100.0)

你可以有不同程度的不透明度。 例如 0.5 会给你 50% 的不透明度。

private void trackBar1_Scroll(object sender, EventArgs e) { label1.Text =trackBar1.Value.ToString()+ "%";

        Opacity=trackBar1.Value / 100.00;
        
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM