使用C#中的轨迹栏改变窗体中的不透明度不起作用,为什么?

时间:2013-08-20 19:08:04

标签: c# forms opacity smooth trackbar

我有(为了好玩)在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,还是我想要的?

4 个答案:

答案 0 :(得分:4)

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;

答案 1 :(得分:2)

将数字除以100.它应该是0到1之间的双倍

((double)trackBar1.Value) / 100

答案 2 :(得分:2)

使用此:

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

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

答案 3 :(得分:-1)

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

        Opacity=trackBar1.Value / 100.00;
        
    }