WPF,C#, 我有一个基于按钮基类的自定义按钮。 而且我需要处理按钮的事件,例如“按下”和“释放”。 WPF不允许为单个按钮创建两个事件处理程序。 所以我正在寻找解决方案。
逻辑考试 e:
有人可以分享一个有效的例子吗?
谢谢!
答案 0 :(得分:1)
正如@Clemens在他的评论中提到的,您想要的事件是PreviewLeftMouseButtonDown
被按下,PreviewMouseLeftButtonUp
被释放(或者PreviewMouseDown
和PreviewMouseUp
,如果您想回应处理事件时,将鼠标悬停在任何鼠标按钮上。
WPF
<Button Content="Click me!"
PreviewMouseLeftButtonDown="OnPreviewMouseLeftButtonDown"
PreviewMouseLeftButtonUp="OnPreviewMouseLeftButtonUp" />
C#
private void OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
/* Respond to the event */
}
private void OnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
/* Respond to the event */
}
编辑
发布后,我意识到您所说的这句话是什么意思
WPF不允许为单个按钮创建两个事件处理程序。所以我正在寻找解决方案。
在XAML中添加事件处理程序时,只能连接一个事件处理程序(就像在我的示例中一样)。如果您需要将多个处理程序关联到一个事件,则需要使用文件后面C#代码中的+=
运算符来完成该操作。
但是,由于 pressed 和 released 事件是两个独立的事件,因此这不适用于您要完成的目标。