如何通过if-else条件更改WPF窗口的不透明度?

时间:2015-12-13 15:50:27

标签: c# wpf

我正在使用wpf和c#开发游戏。 我有这样的计时器:

    public void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DispatcherTimer rt = new DispatcherTimer();
    rt.Tick += new EventHandler(rt_tick);
    rt.Interval = new TimeSpan(0, 0, 1);
    rt.Start();
}

现在我将时间设置为20秒,我希望在20秒过后,布局会褪色(不透明度为70%) 我尝试了这个,但是给出了错误,好像是“公共双Opacity {get; set;}” 不能在里面调用。

int i = 120;

        private void rt_tick(object sender, EventArgs e) //round timer
        {
           if(i!=0)
           {
               i--;
               txbTime.Text = "";
               txbTime.Text = Convert.ToString(i) + "s";
           }
           else 
           {  //note*

              public double Opacity
              {
                 get
                    { 
                      return this.Opacity;
                    }
                 set
                    {
                      this.Opacity = 0.7;
                    }
              }
           }                
        }

注意* - 它在这里给我错误“}预期”。

1 个答案:

答案 0 :(得分:1)

您在方法中声明了一个属性,这是无效的C#语法。您只需在方法中设置值:

private void rt_tick(object sender, EventArgs e) //round timer
{
   if(i!=0)
   {
       i--;
       txbTime.Text = "";
       txbTime.Text = Convert.ToString(i) + "s";
   }
   else 
   { 
        this.Opacity = 0.7;
   }                
}