一、目的:由于MouseDoubleClick控件是在Control中实现,那么在底层控件如Grid中想要类似功能如何实现,这里通过MouseDown的事MouseButtonEventArgs参数去实现
二、实现
定义Grid并注册Grid的MouseDown事件
<Grid Background="Transparent" MouseDown="Grid_MouseDown">
<TextBlock x:Name="tb_doubleclick" VerticalAlignment="Top" />
</Grid>
private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ClickCount == 2)
this.tb_doubleclick.Text += "双击" + Environment.NewLine;
if (e.ClickCount == 3)
this.tb_doubleclick.Text += "三连击" + Environment.NewLine;
}
其中MouseButtonEventArgs有个ClickCount参数记录点击的次数,可以根据这个参数做判断
同理三,四.....连击也类似
更精确的控制可以加上e.Timestamp参数,具体作用参考下面五的连接学习
三、环境
VS2022
四、示例
五、需要了解的知识点
MouseButtonEventArgs 类 (System.Windows.Input) | Microsoft Learn
Control.MouseDoubleClick 事件 (System.Windows.Controls) | Microsoft Learn
六、源码地址
GitHub - HeBianGu/WPF-ControlDemo: 示例
GitHub - HeBianGu/WPF-ControlBase: Wpf封装的自定义控件资源库
GitHub - HeBianGu/WPF-Control: WPF轻量控件和皮肤库
七、了解更多
System.Windows.Controls 命名空间 | Microsoft Learn
https://github.com/HeBianGu
HeBianGu的个人空间-HeBianGu个人主页-哔哩哔哩视频