如何在 WPF Windows Toast 通知按钮按下时调用函数?

How to call a function on a WPF Windows Toast Notification button press?

我最近一直在研究一个 WBF 项目,并尝试从 Microsoft.Toolkit.Uwp.Notifications NuGet 包中实现一个 windows Toast 通知。所以我设置了通知并且它工作正常但是我如何在按下 ToastButton 时调用函数?我知道我应该覆盖 App.xaml 中的 OnActivated 函数,但它一直告诉我没有这样的函数可以覆盖,只有一个使用 EventArgs 作为参数但没有被调用的函数按下按钮。这是我的吐司:

new ToastContentBuilder()
                        .AddText("test")
                        .AddButton(new ToastButton()
                            .SetContent("Call function")
                            .AddArgument("action", "callFunction")
                        )
                        .AddButton(new ToastButton()
                            .SetContent("Dismiss")
                            .SetDismissActivation()
                        )
                        .Show();

如您所见,我只是创建了一个带有 2 个按钮的简单 Toast 通知。一个很好地关闭了通知,但是当我单击另一个测试按钮时如何调用函数?

同样,我的 App.xaml 没有正确的 OnActivated 函数可以被覆盖,并且它确实有的函数不会在按下按钮时被调用。我认为这是因为它是一个 WPF 项目而不是 UWP 项目。任何人都可以帮助我吗?

提前致谢

终于找到解决办法了。您可以像这样将您的函数订阅到 ToastNotificationManagerCompat

ToastNotificationManagerCompat.OnActivated += toastArgs =>
{
    CheckInput(toastArgs);
};

然后,只要按下吐司按钮,就会调用 CheckInput 函数。然后您可以检查 toastArgs.Argument 参数以查看按下了哪个按钮,并且在 CheckInput 内部显然您放置了逻辑来处理不同的按钮按下。