2017-03-09 97 views
2

如何在使用Microsoft.Toolkit.Uwp.Notifications庫的WPF應用程序的系統吐司通知上將click事件附加到按鈕上?WPF上的系統通知

我知道我需要使用IBackground接口,但我不能綁定到這個類,因爲下面的代碼導致錯誤(ToastNotificationActionTrigger()元素未找到,HRESULT:0x80070490)。

 private void RegisterBackgroundTask() 
     { 
     const string taskName = "ToastBackgroundTask"; 
     // Otherwise create the background task 
     var builder = new BackgroundTaskBuilder(); 
     builder.Name = taskName; 
     builder.TaskEntryPoint = typeof(ToastNotificationBackgroundTask).FullName; 
     // And set the toast action trigger 
     builder.SetTrigger(new ToastNotificationActionTrigger()); 
     // And register the task 
     builder.Register(); 
     } 

我通知的觀點:

View of my notification

請幫助。

回答

0

我用通知在WPF一年前,這裏是我如何實現它:

首先,你必須從增加的NuGet包Windows API Code Pack

然後我用下面的代碼:

public static void RaiseGeneratedNotification(int errors, int warnings) 
{ 
    // Get a toast XML template 
    XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText04); 

    // Fill in the text elements 
    XmlNodeList stringElements = toastXml.GetElementsByTagName("text"); 
    stringElements[0].AppendChild(toastXml.CreateTextNode("Web Studio")); 
    stringElements[1].AppendChild(toastXml.CreateTextNode(Strings.Errors+": "+errors)); 
    stringElements[2].AppendChild(toastXml.CreateTextNode(Strings.Warnings+": " +warnings)); 


    // Specify the absolute path to an image 
    String imagePath = "file:///" + Path.GetFullPath("App.png"); 
    XmlNodeList imageElements = toastXml.GetElementsByTagName("image"); 
    imageElements[0].Attributes.GetNamedItem("src").NodeValue = imagePath; 

    // Create the toast and attach event listeners 
    ToastNotification toast = new ToastNotification(toastXml) 
    { 
     ExpirationTime = DateTimeOffset.Now.AddMinutes(2) 
    }; 

    // Show the toast. Be sure to specify the AppUserModelId on your application's shortcut! 
    ToastNotificationManager.CreateToastNotifier(Resources.AppId).Show(toast); 
} 

有了這個代碼,我做了以下步驟:

  1. 獲得通知模板。
  2. 獲得通知
  3. 領域滿山遍野
  4. 創建模板
  5. 通知擡起通知

您還可以在應用程序的快捷方式來註冊一個AppID。

我希望這可以幫助你。

+0

謝謝,@ ganchito55,我已經現在如何顯示簡單的系統通知與文字,描述和圖像,但現在我想實現按鈕通知。我使用了[以下文章](https://blogs.msdn.microsoft.com/tiles_and_toasts/2015/07/08/quickstart-sending-a-local-toast-notification-and-handling-activations-from-it-it- windows-10 /),但我無法處理點擊按鈕事件。 –

+0

@VitaliiKulyk我剛剛關注了那篇文章,並且在一個新的WPF應用程序中,我遇到ToastNotification無法識別的錯誤。你能用你的代碼給我一個項目嗎?我會盡力解決它。 – ganchito55

+0

mr @ ganchito55,你可以點擊[鏈接](https://github.com/vitcool/WPFDesctopNotifications/tree/master/CSharp-Toast-Example)下載我的項目。我會感謝任何幫助。 –