C# 触发 windows 10 媒体通知

标签 c# wpf windows-10

如何将这些 Windows 10“媒体通知”实现到 C# WPF 桌面应用程序中?

enter image description here

最佳答案

你说的是 SystemMediaTransportControls 类。它的用法在 Microsoft Docs 中有描述。

但是,这个 API 是为 UWP 设计的,因此要让它在像 WPF 这样的常规桌面应用程序中工作需要更多的工作。 StackOverflow 上有 some answers 描述了如何执行此操作,但也有一些来自 Microsoft 的更新的官方 documentation 关于如何使用这些 WinRT API。

不幸的是,桌面应用 [5] 不直接支持系统媒体传输控制 API,因此它变得有点复杂,如此处 [6] 所述。


简而言之,对于 .NET 5:

  1. 安装您喜欢的版本的 Windows 10 SDK(例如通过 VS 安装程序);

  2. 将目标框架更改为您安装的 SDK 版本,例如net5.0-windows10.0.19041.0.

  3. 使用 [6] 中描述的 API 互操作来获取实例。

    对于 SMTP,您需要使用 Windows.Media.SystemMediaTransportControlsInterop。这需要一个窗口的句柄,您可以在 WPF 中使用 WindowInteropHelper 获取它。

  4. 使用 [SystemMediaTransportControls] 中描述的 2 实例。

关于C# 触发 windows 10 媒体通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45080655/

相关文章:

WPF - ItemTemplate 未按预期运行

c# - 公开自托管服务时以编程方式从配置文件中读取 WCF 行为元素

c# - 将 .NET 程序集编译成 x86 机器码

c# - 异常处理中间件和页面

c# - 在 MVVM WPF 中从其内容的 ViewModel 关闭一个窗口?

wpf:按钮,文本框,被切断

c# - 确定一个方法是否调用另一个包含新语句的程序集中的方法,反之亦然

docker 错误! Docker 守护进程未运行

Ruby 可执行文件无法在 Win10 和 Win7 上启动

c# - 在特定时间运行后台任务 - Windows 10 应用程序