gpt4 book ai didi

winforms - 从 Windows 窗体应用程序显示 Windows 8 toast

转载 作者:行者123 更新时间:2023-12-04 12:33:05 27 4
gpt4 key购买 nike

我们有一个最初为 Windows 7 创建的 Windows 窗体应用程序(与 WPF 相比)。我们正在推进该产品以在 Windows 8 中使用。

对于运行 Windows 8 的用户,是否可以从此 WinForm 应用程序显示 Windows 8 Toast 通知(Windows.UI.Notifications 命名空间)?

我似乎找不到任何例子。我发现的一切都是 WPF 或 Windows 应用商店应用程序——没有示例是 WinForm 应用程序。

最佳答案

在win 8下的winform项目中可以使用toast通知。我创建了一个winform项目,添加一个按钮,当按下按钮时,窗口右上角会显示一个toast通知。以下是我所做的。
首先需要通过修改cspoj文件打开win 8平台(winform项目中默认关闭),以便添加“Windows”引用。
在桌面项目中,Core 选项卡默认不会出现。您可以通过右键单击解决方案探索中的项目,选择卸载项目,添加以下代码段,然后重新打开项目(右键单击项目选择重新加载项目)来添加 Windows 运行时。当您打开“引用管理器”对话框时,会出现“核心”选项卡。然后您可以将“Windows”引用添加到项目中。

<PropertyGroup>
<TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
更多详情可以引用 this link (接近页面的末尾部分)
其次,添加 System.Runtime 引用。
在“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Runtime.dll”中手动添加dll(右键引用,添加引用,浏览)
三、添加toast通知(可以将此代码添加到按钮按下事件中)
这部分代码可以引用 this link
注意:如果你只想显示 toast 通知,你不需要关心 ShellHelpers.cs。或者如果你喜欢,你可以复制下面的代码。你可能需要相应地添加一些使用,并且可能有一张图片,如果没有,它仍然可以运行。哦,你还需要设置一个APP_ID(只是一个const字符串来表示唯一性)。
private const String APP_ID = "Microsoft.Samples.DesktopToastsSample";

using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;
using System.IO;


// Get a toast XML template
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText04);

// Fill in the text elements
Windows.Data.Xml.Dom.XmlNodeList stringElements = toastXml.GetElementsByTagName("text");
for (int i = 0; i < stringElements.Length; i++)
{
stringElements[i].AppendChild(toastXml.CreateTextNode("Line " + i));
}

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

// Create the toast and attach event listeners
ToastNotification 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(APP_ID).Show(toast);

关于winforms - 从 Windows 窗体应用程序显示 Windows 8 toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com