【问题标题】:Fire event when WPF button was pressed/unpressed按下/未按下 WPF 按钮时触发事件
【发布时间】:2023-03-03 08:09:27
【问题描述】:

我需要在按下 WPF 按钮(通过鼠标、键盘、触摸屏等)时触发一些事件,并在未按下 WPF 按钮时触发事件。

如何做到这一点?这应该很容易,但我找不到如何做到这一点。

【问题讨论】:

    标签: wpf button


    【解决方案1】:

    您可以从 Button 派生并覆盖 OnIsPressedChanged 方法并在那里触发自定义事件。

    或者您可以绑定到ButtonBase.IsPressed 属性。

    【讨论】:

      【解决方案2】:

      另一种选择是使用 DependencyPropertyDescriptor:

      var descriptor = DependencyPropertyDescriptor.FromProperty(Button.IsPressedProperty, typeof(Button));
      descriptor.AddValueChanged(this.button, new EventHandler(IsPressedChanged));
      

      【讨论】:

        【解决方案3】:

        如果您使用的是 MVVM,则可以使用事件触发器来解决您的问题。这样,您仍然可以将 UI 需求与应用程序逻辑分开。

        【讨论】:

        • 我试过这种方式,但你失去了命令的 Canexecute 功能。
        猜你喜欢
        • 2013-10-11
        • 2011-02-06
        • 2019-06-07
        • 1970-01-01
        • 2015-08-09
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        • 2012-08-17
        相关资源
        最近更新 更多