如何通过UWP编程在Windows 10锁屏界面添加自定义文本或控件?
Windows 10锁屏界面显示自定义内容实现方案
需求说明
点击按钮后在Windows 10锁屏界面展示自定义文本或控件,预期效果如下:
方案实现步骤
你此前的Toast通知代码缺少必要配置,导致无法在锁屏展示,按以下步骤调整即可:
- 第一步:配置UWP项目清单权限
打开项目中的Package.appxmanifest文件,切换到「应用程序」选项卡:- 在「锁屏界面通知」配置项中,将通知类型设置为提醒
- 将应用添加到锁屏允许展示状态的应用列表
- 确保已声明
internetClient基础权限,避免通知被系统拦截
- 第二步:调整Toast通知构造代码
修正后的完整代码如下:
ToastContent content = new ToastContent() { Scenario = ToastScenario.Reminder, // 锁屏展示必须设置长时长 Duration = ToastDuration.Long, Visual = new ToastVisual() { BindingGeneric = new ToastBindingGeneric() { Children = { // 必须配置主文本,系统锁屏优先抓取该内容展示 new AdaptiveText() { Text = "自定义主标题" }, new AdaptiveText() { Text = "自定义展示内容" } }, Attribution = new ToastGenericAttributionText() { Text = "Hello World" } } }, Actions = new ToastActionsCustom() { Buttons = { new ToastButton ("mycontent", "myargs") } } }; var notification = new ToastNotification(content.GetXml()); // 配置通知标识,可用于后续更新/移除通知 notification.Tag = "LockScreenCustom"; notification.Group = "LockScreenGroup"; // 高优先级是锁屏展示的必要条件 notification.Priority = Windows.UI.Notifications.NotificationPriority.High; ToastNotificationManager.CreateToastNotifier().Show(notification);
- 第三步:配置系统侧权限
进入Windows系统设置完成以下配置:- 打开「系统-通知和操作」,找到你的应用,开启「在锁屏界面上显示通知」开关
- 打开「个性化-锁屏界面」,将你的应用添加到「选择在锁屏界面上显示详细状态的应用」列表
扩展说明
如果需要展示复杂自定义控件,UWP原生Toast能力有限,可以选择两种替代方案:
- 调用Win32锁屏扩展API实现,需要使用C++开发对应组件
- 采用动态绘制锁屏壁纸的方案,将自定义内容渲染到锁屏壁纸上展示
内容的提问来源于stack exchange,提问作者wpferr19
相关产品推荐
相关产品推荐

