个性化阅读
专注于IT技术分析

使用C#在Windows 10(控制中心样式)中创建通知

阅读更多有关真正有趣的Windows 10新功能的信息后, 我找到了如何在桌面上创建简单的Toastbar通知的代码段。

该示例非常简单, 在单击按钮时, 如果发生吐司事件, 标签将显示被调用动作的名称, 源代码如下:

using System;
using System.Diagnostics;
using System.IO;
using System.Windows;
using System.Windows.Controls;
 
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;
 
namespace DesktopToastsSample
{
    public partial class MainWindow : Window
    {
        private const String APP_ID = "Microsoft.Samples.DesktopToastsSample";
        public MainWindow()
        {
            InitializeComponent();
            ShowToastButton.Click += ShowToastButton_Click;
        }
 
        // Create and show the toast.
        // See the "Toasts" sample for more detail on what can be done with toasts
        private void ShowToastButton_Click(object sender, RoutedEventArgs e)
        {
 
            // Get a toast XML template
            XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText04);
 
            // Write text example
            XmlNodeList stringElements = toastXml.GetElementsByTagName("text");
            for (int i = 0; i < stringElements.Length; i++)
            {
                stringElements[i].AppendChild(toastXml.CreateTextNode("This is the line #" + i));
            }
 
            // Specify the absolute path to an image
            String imagePath = "file:///" + Path.GetFullPath("toastImageAndText.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);
            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);
        }
 
        private void ToastActivated(ToastNotification sender, object e)
        {
            Dispatcher.Invoke(() =>
            {
                Activate();
                Output.Text = "The user activated the toast.";
            });
        }
 
        private void ToastDismissed(ToastNotification sender, ToastDismissedEventArgs e)
        {
            String outputText = "";
            switch (e.Reason)
            {
                case ToastDismissalReason.ApplicationHidden:
                    outputText = "The app hid the toast using ToastNotifier.Hide";
                    break;
                case ToastDismissalReason.UserCanceled:
                    outputText = "The user dismissed the toast";
                    break;
                case ToastDismissalReason.TimedOut:
                    outputText = "The toast has timed out";
                    break;
            }
 
            Dispatcher.Invoke(() =>
            {
                Output.Text = outputText;
            });
        }
 
        private void ToastFailed(ToastNotification sender, ToastFailedEventArgs e)
        {
            Dispatcher.Invoke(() =>
            {
                Output.Text = "An error ocurred";
            });
        }
    }
}

你可以在此处阅读有关此代码段的更多信息, 并在此处阅读有关msdn的文章。

赞(0)
未经允许不得转载:srcmini » 使用C#在Windows 10(控制中心样式)中创建通知

评论 抢沙发

评论前必须登录!