gpt4 book ai didi

c# - 如何捕获 WPF FrameworkElement 上的单击和双击事件?

转载 作者:IT王子 更新时间:2023-10-29 04:39:05 40 4
gpt4 key购买 nike

我可以像这样在 TextBlock 上捕捉到单击:

private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("you single-clicked");
}

我可以像这样在 TextBlock 上捕捉到双击:

private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
if (e.ClickCount == 2)
{
MessageBox.Show("you double-clicked");
}
}
}

但我如何在单个 TextBlock 上捕获它们并区分两者?

最佳答案

您需要在点击序列结束后触发事件……那是什么时候?我建议使用计时器。 MouseDown 事件会重置它并增加点击次数。当计时器间隔结束时,它会调用以评估点击次数。

    private System.Timers.Timer ClickTimer;
private int ClickCounter;

public MyView()
{
ClickTimer = new Timer(300);
ClickTimer.Elapsed += new ElapsedEventHandler(EvaluateClicks);
InitializeComponent();
}

private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
ClickTimer.Stop();
ClickCounter++;
ClickTimer.Start();
}

private void EvaluateClicks(object source, ElapsedEventArgs e)
{
ClickTimer.Stop();
// Evaluate ClickCounter here
ClickCounter = 0;
}

干杯!

关于c# - 如何捕获 WPF FrameworkElement 上的单击和双击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086213/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com