我们提供安全,免费的手游软件下载!
最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园。
实现了一个支持长短按得按钮组件,单击可以触发
Click
事件,长按可以触发
LongPressed
事件,长按松开时触发
LongClick
事件。源码请自取:
Github
为了方便在
xaml
中使用,我们先配置一个
DependencyProperty
叫做
LongPressTime
来作为界定长按的阈值
定义完成后可以在Xaml设计器中使用
LongPressTime
这个拓展属性
C#中的4种定时器,在WPF中需要使用
Dispater Timer
定义一个DispatcherTimer来监控是否按下达到了长按
现在作为一个自定义控件,我们需要在长按后发出一个
RoutedEvent
,并修改部分之前的代码抛出事件
回到窗体的代码中,添加事件的响应
C#代码如下,长按按钮会显示Long Pressed,单击会是Click
发现
Click
和
LongPress
都可以响应,但是当松开按钮时又变成了
Click
,原因是鼠标松开时响应了默认的Click事件
现在对按钮控件默认的
OnClick
函数稍作修改,可以让
Click
也不出问题
之后再进行点击操作,我们就可以看到符合预期的结果
长按+Style按钮的展示效果
外观Style自定义见这篇文章:WPF自定义按钮外形
UIElement.MouseLeftButtonDown Event
用户控件自定义 DependencyProperty 属性使用教程
WPF 中 DispatcherTimer 计时器
如何:创建自定义路由事件
WPF 自定义带自定义参数路由事件
Use WPF Style in another assemble
相关资讯
热门资讯