是否可以在 WPF 应用程序中使用 UWP API?

Posted

技术标签:

【中文标题】是否可以在 WPF 应用程序中使用 UWP API?【英文标题】:Is it possible to use UWP APIs in a WPF app? 【发布时间】:2015-11-13 12:35:52 【问题描述】:

一个例子是适用于 Windows 10 通用平台的新通知 API。我可以在 WPF 应用程序中使用这组 API 吗?如果有,有什么限制吗?

非常感谢您提供相关文档的链接。

【问题讨论】:

是的。为如此广泛的问题寻求帮助。 这是一个我在网上找不到答案的一般问题。我想为 wpf 应用添加通知支持,但在网络上找不到任何有用的资源。 那么要求“限制”有什么意义呢?只需询问您正在尝试解决的真正问题。 我编辑了我的问题以使限制部分更清晰。 【参考方案1】:

可以在 WPF 应用中使用 UWP API。但并非所有 UWP API 都可以在 WPF 应用中使用。

Windows 10 API 可从 PC 软件访问的规则存在例外情况。第一个大例外涉及 XAML UI API。 UWP 中的 XAML 框架与 WPF 中的不同,无论如何,您真的不想混淆它们。

您不能使用的第二组 API 是依赖于应用的 package identity 的 API。 UWP 应用具有程序包标识,而 PC 软件没有。包身份信息可以在应用清单文件中找到。

您如何确定哪些 Windows 10 API 需要程序包标识,哪些不需要?最简单的方法是参考这个MSDN topic。

关于如何从 WPF 访问 Windows 10 API,请参考this answer,另请参阅博客Calling Windows 10 APIs From a Desktop Application(请注意博客中引用的名称不对,建议您参考SO中的答案)。

【讨论】:

【参考方案2】:

不,你不能——至少现在—— 但是一个名为“Centennial”的项目取得了进展,这将使您能够做到这一点。

更多见“bridges”。

是的,现在可以了。 https://blogs.windows.com/buildingapps/2017/01/25/calling-windows-10-apis-desktop-application/

【讨论】:

您的帖子已过时。 ;)

以上是关于是否可以在 WPF 应用程序中使用 UWP API?的主要内容,如果未能解决你的问题,请参考以下文章

如何在WPF中调用Windows 10/11 API(UWP/WinRT)

WPF 引用 UWP 控件 不打包为 MSIX 分发的方法

WPF 桌面应用程序,Windows 10 通知 Toast 2016(UWP 社区工具包)

在 WPF 程序中应用 Windows 10 真?亚克力效果

UwpDesktop!WPF也能开发Surface Dial

是否有与 UWP 的 SplitView Hamburger Menu 等效的 WPF?