【问题标题】:WP7, C#, Increase slider value by holding a buttonWP7,C#,按住按钮增加滑块值
【发布时间】:2012-08-23 04:58:16
【问题描述】:

我必须在按住按钮的同时增加滑块控件的值。
只要我按住按钮,滑块就必须不断增加。

例如,该场景是典型的音量控制。
我有一个音量滑块和一个音量按钮Increase
现在只要我一直按住Increase 按钮,滑块中的音量(标记)就会不断增加,直到我松开按钮。

我已经实现的是更改按钮上各个 click 事件的滑块值。
请就我如何实现这一目标提出您的建议。

【问题讨论】:

    标签: c# windows-phone-7 button slider


    【解决方案1】:

    根据book 应该有RepeatButton。在这种情况下,它将完全满足您的需求。尽量避免线程休眠。冻结不是一件好事。它是重构的首批候选对象之一。

    【讨论】:

      【解决方案2】:
          public bool Ok = false;
      
          public void Do()
          {
              while (Ok)
              {
                  this.Text += ".";
                  System.Threading.Thread.Sleep(100);
                  Application.DoEvents();
                  //I added dots to the form text , You do your own mission
              }
          }
      
          private void btnLouder_MouseDown(object sender, MouseEventArgs e)
          {
              Ok = true;
              Do();
          }
      
          private void btnLouder_MouseUp(object sender, MouseEventArgs e)
          {
              Ok = false;
          }
      

      在窗体中添加一个 TrackBar 控件,然后
      用这个替换 While 块中的代码,它完全符合您的要求:

      if(trackBar1.Value < trackBar1.Maximum)
          trackBar1.Value += 1;
      

      【讨论】:

      • 请使用重复按钮而不是这个。 Click 事件中的 while(true) 循环、Thread.Sleep 和 Application.DoEvents 紧接着彼此伤害了我的眼睛。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多