当我移动鼠标时如何实现某些按钮会显示一段时间然后如果鼠标仍然存在则会丢失?

时间:2012-01-12 11:03:27

标签: wpf mousemove

我使用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);

        }
    }

1 个答案:

答案 0 :(得分:2)

您最好的选择是使用某种形式的计时器,例如Timer类。然后,您可以连接到Elapsed事件并使用其中的处理程序来计算已过去的时间。达到特定时间阈值后,您可以隐藏按钮。所以代码步骤的一个例子就是:

  1. 用户移动鼠标。
  2. 显示按钮。
  3. 用户停止移动鼠标。
  4. 启动计时器。
  5. 计算Timer.Elapsed事件的时间。
  6. 时间计数达到阈值。
  7. 隐藏按钮并停止计时器。
  8. Activity Diagram Showing Events and Process