我是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);
}
}
但由于某种原因,我的形式不透明度并没有改变。这似乎是什么问题?
答案 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;