Button的“新闻”和“发布”事件

时间:2019-09-08 20:05:48

标签: c# wpf

WPF,C#, 我有一个基于按钮基类的自定义按钮。 而且我需要处理按钮的事件,例如“按下”和“释放”。 WPF不允许为单个按钮创建两个事件处理程序。 所以我正在寻找解决方案。

逻辑考试 e:

  • button_1按下->事件处理程序->做点什么;
  • button_1已发布->事件处理程序->做点什么;

有人可以分享一个有效的例子吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

正如@Clemens在他的评论中提到的,您想要的事件是PreviewLeftMouseButtonDown被按下,PreviewMouseLeftButtonUp被释放(或者PreviewMouseDownPreviewMouseUp,如果您想回应处理事件时,将鼠标悬停在任何鼠标按钮上。

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 事件是两个独立的事件,因此这不适用于您要完成的目标。