制作跟踪栏以更改表单1的不透明度

时间:2018-04-17 10:46:18

标签: c# forms winforms visual-studio

我是C#编码的初学者

我正在尝试创建一个Track Bar,它将使用If语句更改窗体的不透明度。

       private void trackBar1_ValueChanged(object sender, EventArgs e)
    {
        if (trackBar1.Value == 1)
        {
            this.Opacity = (10);
        }
        if (trackBar1.Value == 2)
        {
            this.Opacity = (20);
        }
        if (trackBar1.Value == 3)
        {
            this.Opacity = (30);
        }
        if (trackBar1.Value == 4)
        {
            this.Opacity = (40);
        }
        if (trackBar1.Value == 5)
        {
            this.Opacity = (50);
        }
        if (trackBar1.Value == 6)
        {
            this.Opacity = (60);
        }
        if (trackBar1.Value == 7)
        {
            this.Opacity = (70);
        }
        if (trackBar1.Value == 8)
        {
            this.Opacity = (80);
        }
        if (trackBar1.Value == 9)
        {
            this.Opacity = (90);
        }
        if (trackBar1.Value == 10)
        {
            this.Opacity = (100);
        }
    }

但由于某种原因,我的形式不透明度并没有改变。这似乎是什么问题?

1 个答案:

答案 0 :(得分:0)

这是因为Opacity属性的有效范围是介于0和1之间的双精度值。如果您尝试将其设置为大于1的值,则它将设置为1,如果您尝试设置它如果值小于0,则设置为0.以下是属性source code中的验证:

if (value > 1.0) {
    value = 1.0f;
}
else if (value < 0.0) {
    value = 0.0f;
}

例如,要将表单的不透明度设置为70%,您可以将Opacity设置为0.7

在您的代码中,您需要使用以下方式设置不透明度:

this.Opacity = trackBar1.Value * 0.1;