2016-09-28 93 views
5

我試圖顯示Windows 10 Toast與我的WPF C#桌面應用程序WPF桌面應用程序,Windows 10通知吐司2016(UWP社區工具包)

不幸的是,關於非UWP或Store應用程序中的Windows 10通知的API和常規支持看起來相當有限且混亂。 最近發佈了UWP Community Toolkit,這似乎試圖讓我們更容易。 還有這個商店應用,Notifications Visualizer,這有助於使祝酒詞是這樣的:

enter image description here

我去和使用C#和由UWP社區工具包提供的API試圖產生的吐司。

using Microsoft.Toolkit.Uwp.Notifications;

ToastContent toastContent = new ToastContent() 
{ 
    Visual = new ToastVisual() 
    { 
     BindingGeneric = new ToastBindingGeneric() 
     { 
      Children = 
      { 
       new AdaptiveText() 
       { 
        Text = "Matt sent you a friend request" 
       }, 
       new AdaptiveText() 
       { 
        Text = "Hey, wanna dress up as wizards and ride around on our hoverboards together?" 
       } 
      }, 
      AppLogoOverride = new ToastGenericAppLogo() 
      { 
       Source = "https://unsplash.it/64?image=1005", 
       HintCrop = ToastGenericAppLogoCrop.Circle 
      } 
     } 
    } 
}; 


XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.LoadXml(toastContent.GetContent()); 

var toast = new ToastNotification(xmlDoc); 
ToastNotificationManager.CreateToastNotifier(AppId).Show(toast); // Display toast 

不幸的是,無論我怎麼努力,我似乎​​無法得到相同的結果,圖像總是缺少一些原因:

enter image description here

的大部分信息,我發現關於這些通知是過時的還是無用的。 有人可以請說明這一點嗎? 謝謝。

+0

提問者很清楚這是一個桌面應用程序。但是,不確定UWP社區工具包命名空間是否應該在舊式桌面應用上編譯/運行,但考慮到該工具包*是專門爲UWP設計的。 – BoltClock

+0

@BoltClock,我不熟悉UWP,但AFAIK這本質上只是傳遞給底層通知API的XML代碼。這不應該解決整個問題,並使它幾乎無關緊要什麼樣的應用程序正在調用該功能? – r41n

+2

我做了一些更多的研究,看起來像Microsoft.Toolkit.Uwp.Notifications實際上有.NET庫,而不僅僅是WinRT/UWP。我假設你正在使用.NET標準庫。對於「UWP社區工具包」來說非常多...無論如何,是的,它應該將通知格式與API /平臺分離。不幸的是,我還沒有更新任何支持新通知API的WPF應用程序,因此我無法進一步評論。 – BoltClock

回答

6

單獨與UWP工具包這樣

的沒辦法,它看起來像這隻能分兩步實現,其中之一是出了UWP工具包範圍的.NET標準。

.NET標準應用程序需要COM服務器和專用開始菜單快捷方式才能正確使用Windows 10操作中心。 UWP應用程序似乎不需要或已經具有相同的功能。 這兩個步驟應該在應用程序安裝過程中執行,這顯然是Microsoft UWP Toolkit不參與的。 因此,UWP工具包本身不僅無法提供完整的解決方案,而且也無法提供完整的解決方案Windows 10 Toast for .NET Standard以自包含的方式提供。

替代

我發現,有「微軟在其名稱中一個不起眼的C# Project on Github,它的工作原理開箱沒有UWP工具包。 它需要您提供一個GUID和一個AppID字符串,然後用它來註冊COM服務器並創建快捷方式。

一個更清潔的外觀替代品是this library似乎提供相同的功能。我仍然需要測試它。

這兩種解決方案都應與微軟的NotificationsExtensions librabry一起工作,它是UWP工具包的先驅,並有助於生成Toast由其構成的XML代碼。