2012-01-12 65 views
2

我用MouseMove事件來檢測鼠標移動,所以我可以改變我的按鈕的可見性。鼠標停止移動後,按鈕仍然存在,因爲我不知道如何以及如何計算讓按鈕再次不可見的時間。如何實現某些按鈕出現一會兒,當我移動鼠標,然後鼠標仍然便宜?

這些按鈕是全屏幕視頻播放器的控件,所以任何其他想法也歡迎。

private void OnTimedEvent(object source, ElapsedEventArgs e) 
    { 
     timer.Stop(); 

     button1.Visibility = Visibility.Hidden; 
     button2.Visibility = Visibility.Hidden; 
    } 

    private void mediaElement1_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (!timer.Enabled) 
     { 
      timer.Enabled = true; 
      return; 
     } 
     if (timer.Enabled) 
     { 
      timer.Interval = 2000; 
      timer.Start(); 

      button1.Visibility = Visibility.Visible; 
      button2.Visibility = Visibility.Visible; 

      timer.Elapsed += new ElapsedEventHandler(OnTimedEvent); 

     } 
    } 

回答

2

最好的辦法是利用某種形式的計時器,如Timer班。然後,您可以連接到Elapsed事件並使用其中的處理程序來計算已過去的時間。一旦達到某個時間閾值,您就可以隱藏按鈕。因此,代碼步驟的示例如下所示:

  1. 用戶移動鼠標。
  2. 顯示按鈕。
  3. 用戶停止移動鼠標。
  4. 啓動計時器。
  5. 計數時間爲Timer.Elapsed事件。
  6. 時間計數達到閾值。
  7. 隱藏按鈕並停止計時器。

Activity Diagram Showing Events and Process

+0

我還是新手,我應該捕獲,當鼠標停止的MouseMove方法中移動,或別的地方? – HomeMade 2012-01-12 11:33:36

+0

您可能想要在「MouseMove」事件處理程序中啓動計時器,並在每次輸入該方法時重置計時器。我將編輯我的答案以反映這一點。 – 2012-01-12 11:43:17

+0

哦,我剛剛在MSDN – HomeMade 2012-01-12 11:44:04

相關問題