Windows 10通知WPF

时间:2016-03-10 07:38:44

标签: c# wpf notifications visual-studio-2015 windows-10

我正在尝试通过我的WPF应用程序来确定是否可以访问Windows 10中存在的内置通知服务。 我正在使用VS 2015和c#。 同样,toasternotification是同样的事情?它们在Windows 10中看起来不再那样了。 如果是的话,你能指导我正确的方向命名空间等吗?

是的,我在网上搜索过,只发现了Win 7的asternternification。这不是我想要的。

由于

2 个答案:

答案 0 :(得分:2)

找到a code sample that is similar to what you need, but only does Toast Notifications

您基本上希望拥有一个引用Windows.UI组件的常规.NET应用程序。

要使用Windows 10通知,您需要编辑csproj文件并添加目标平台,

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<TargetPlatformVersion>8.1</TargetPlatformVersion>
</PropertyGroup>

执行此操作后,您应该能够添加对Windows.UI程序集的引用。

右键单击“引用”节点,然后单击左侧窗格中的“Windows”。 选中Windows.UI,Windows.Data和Windows.Foundation的复选框。

接下来,在您的表单类文件中,添加using Windows.UI.Notifications;以访问ToastManager组件。

完成后,访问您要使用的模板

 // Get a toast XML template
 var toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText02);

 // Fill in the text elements
 var stringElements = toastXml.GetElementsByTagName("text");
 stringElements[0].AppendChild(toastXml.CreateTextNode("Title"));
 stringElements[1].AppendChild(toastXml.CreateTextNode("Content"));

Here are the different Toast type enumerations

一旦您有Toast模板的引用,您必须创建ToastNotification并将其发送到ToastNotificationManager

 // Create the toast and attach event listeners
 var toast = new ToastNotification(toastXml);
 toast.Activated += ToastActivated;
 toast.Dismissed += ToastDismissed;
 toast.Failed += ToastFailed;

 // Show the toast. Be sure to specify the AppUserModelId on your application's shortcut!
 ToastNotificationManager.CreateToastNotifier("My Toast").Show(toast);

您也可以为Activated,Dismissed和Failed事件处理程序附加事件。

答案 1 :(得分:1)

供以后参考:

Here 很好地描述了如何使用新的 Windows 10 Toast 通知。而且您无需事先安装您的应用程序或设置 AppUserModelID。直接从 Visual Studio 工作(我的意思是调试模式),最简单的代码如下所示:

new ToastContentBuilder()
    .AddText("Something copied to clipboard")
    .Show();

但不要忘记在 *.csproj 文件中更改目标平台(文章中描述了所有内容)。

<TargetFramework>net5.0-windows10.0.17763.0</TargetFramework>