首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows.UI.Notifications不见了

Windows.UI.Notifications不见了
EN

Stack Overflow用户
提问于 2016-08-25 07:39:46
回答 2查看 24.1K关注 0票数 19

我想创建一个简单的吐司通知,从这个例子到windows 10中的动作中心。但我在第二步遇到了问题:

代码语言:javascript
复制
using Windows.UI.Notifications;

不见了。但是我花了很多时间去找它却没有得到任何结果。我真的不知道我在哪里可以找到或至少下载它。

我试过的是:

  1. 经过长时间的搜索,我在Windows.UI.dll中找到了C:\Windows\System32,但是当我试图将它作为引用添加到项目中时,我得到了这个错误。即使在我试图复制它并使它完全可访问之后,也没有什么改变。

  1. 我试图重新安装.Net (我正在使用4.5.2)
  2. 安装Windows 10 SDK
  3. 尝试用全局导入
  4. 已添加

10.0

  1. 添加System.Runtime.dll引用

示例代码对您来说可能是无用的:

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Toolkit.Uwp.Notifications;
using Microsoft.QueryStringDotNET;
using Windows.UI.Notifications;


namespace MessagerClient.Notifications {
    class DefaultWindowsNotification {

        public static void notificationTest() {
            string title = "Andrew sent you a picture";
            string content = "Check this out, Happy Canyon in Utah!";
            string image = "http://blogs.msdn.com/something.jpg";
            string logo = "ms-appdata:///local/Andrew.jpg";
            ToastVisual visual = new ToastVisual() {

                BindingGeneric = new ToastBindingGeneric() {

                    Children =
                    {
                        new AdaptiveText()
                        {
                            Text = title
                        },

                        new AdaptiveText()
                        {
                            Text = content
                        },

                        new AdaptiveImage()
                        {
                            Source = image
                        }
                    },

                    AppLogoOverride = new ToastGenericAppLogo() {
                        Source = logo,
                        HintCrop = ToastGenericAppLogoCrop.Circle
                    }
                }
            };
            Console.WriteLine("NOTIFICATION");
            //Can`t use because of Windows.UI library
            ToastNotificationManager.CreateToastNotifier().Show(visual);
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-25 09:05:05

要在Winforms应用程序中使用这些UWP合同,您必须非常努力地与Visual进行斗争。你用错误的TargetPlatformVersion马上就走错了路,很难从这一点中恢复过来。应采取的全部步骤:

用文本编辑器编辑.csproj文件,记事本就可以了。插入:

代码语言:javascript
复制
  <PropertyGroup>
       <TargetPlatformVersion>10.0.10586</TargetPlatformVersion>
  </PropertyGroup>

它假定您的计算机上安装了10586 SDK版本。目前,这些版本变化很快。通过查看浏览器中的C:\Program (x86)\Windows \10\Include,您将看到该目录中列出的已安装版本。

打开Winforms项目,使用project > Add > Windows >勾选Windows.DataWindows.UI合同。再次添加引用,并使用Browse选项卡选择System.Runtime。我选择了C:\Program (x86)\Reference \Microsoft\Framework\ .NETFramework\v4.6.1\Facades中的一个。这个引用显示了一个警告图标,不确定它想说什么,但它似乎没有任何副作用。

通过删除窗体上的一个按钮来测试它,双击以添加Click事件处理程序.最基本的代码:

代码语言:javascript
复制
using Windows.UI.Notifications;
...

private void button1_Click(object sender, EventArgs e) {
    var xml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
    var text = xml.GetElementsByTagName("text");
    text[0].AppendChild(xml.CreateTextNode("Hello world"));
    var toast = new ToastNotification(xml);
    ToastNotificationManager.CreateToastNotifier("anythinggoeshere").Show(toast);
}

通过使用不同的ToastTemplateType来添加图像或更多的文本行来润色。请记住,您的程序只能在Win10机器上工作。

票数 29
EN

Stack Overflow用户

发布于 2019-01-18 16:05:56

如果有人碰巧发现了这个,看看这个类似但更新的帖子-

Win Forms .NET 4.5中的吐司通知

阅读在下面的评论。

本质上,我看到的是同样的事情。这段代码会运行,我可以一行行地执行它,没有任何例外,但是在表单应用程序中从来不会显示土司通知。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39139369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档