Чтобы получить событие клика, вам нужно иметь доступ к всплывающему окну. К сожалению, просмотр открытого исходного кода показывает, что созданные окна собраны как частные .
Но можно использовать публичную функцию WPFNotification.Core.NotifyBox.Show
, определив свое собственное окно. Вы можете использовать в своем коде реализацию по умолчанию и расширить ее подпиской на событие click, например:
public static void Show(object content, NotificationConfiguration configuration)
{
DataTemplate notificationTemplate = (DataTemplate)Application.Current.Resources[configuration.TemplateName];
Window window = new Window()
{
Title = "",
Width = configuration.Width.Value,
Height = configuration.Height.Value,
Content = content,
ShowActivated = false,
AllowsTransparency = true,
WindowStyle = WindowStyle.None,
ShowInTaskbar = false,
Topmost = true,
Background = Brushes.Transparent,
UseLayoutRounding = true,
ContentTemplate = notificationTemplate
};
//Subscribe to clicks
window.PreviewMouseDown += NotificationWindow_PreviewMouseDoubleClick;
WPFNotification.Core.NotifyBox.Show(
window, configuration.DisplayDuration, configuration.NotificationFlowDirection);
}
private static void NotificationWindow_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
System.Diagnostics.Debug.WriteLine("Clicked!!!");
}
Теперь вы можете показывать уведомление как
Show(newNotification, notificationConfiguration);
Обратите внимание, что вам нужно добавить ресурсы шаблона, как описано в Getting Started , чтобы показать всплывающее окно по умолчанию.
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/WPFNotification;component/Assets/NotificationUI.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Если указанный вами шаблон "Notification"
недоступен, просто используйте стандартный NotificationConfiguration.DefaultConfiguration.TemplateName
.