我正在尝试通过我的WPF应用程序来确定是否可以访问Windows 10中存在的内置通知服务。 我正在使用VS 2015和c#。 同样,toasternotification是同样的事情?它们在Windows 10中看起来不再那样了。 如果是的话,你能指导我正确的方向命名空间等吗?
是的,我在网上搜索过,只发现了Win 7的asternternification。这不是我想要的。
由于
答案 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>