考虑以下代码,我有一个文本块,在WPF中它是一个“开/关”按钮。它只是一个椭圆形内部的文字,上面写着ON / OFF。当用户单击按钮并按住左键一秒钟时,如果设备尚未启动,则会执行“打开设备”的代码。如果用户按住ON / OFF按钮三秒或更长时间(保持左鼠标按钮按下),则设备将关闭。
我遇到了几个问题: 1.即使定时器已启动,当鼠标按钮按下时,计时事件也不会触发。 2.do / while循环永远不会退出,即使放开按钮。
谢谢!
我遇到了几个问题: 1.即使定时器已启动,当鼠标按钮按下时,计时事件也不会触发。 2.do / while循环永远不会退出,即使放开按钮。
谢谢!
public int TimerCount = 0;
private void ButtonPressTimer(object sender, EventArgs e)
{
TimerCount = TimerCount + 1;
}
private void txtBlockOnOff_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var buttonPressTimer = new DispatcherTimer(new TimeSpan(0, 0, 0, 1), DispatcherPriority.Normal, ButtonPressTimer, this.Dispatcher);
do
{
if (!buttonPressTimer.IsEnabled)
buttonPressTimer.Start();
}
while (e.ButtonState == MouseButtonState.Pressed);
buttonPressTimer.Stop();
if (TimerCount >= 3)
{
//do something here
}
else
{
//do something different here
}
}