Win10+VS2017下如何让UWP应用Toast仅显示非粗体文本?
如何实现UWP Toast通知的全常规(非粗体)文本
嘿,我之前也踩过这个坑!其实ToastText01这个系统预设模板,默认是把文本当成Toast标题来渲染的,所以会自动应用粗体样式。要改成全常规文本,我们只需要手动修改模板XML里的文本样式属性就行,具体操作如下:
方法1:修改预设模板的文本属性
直接在你现有代码的基础上,添加修改样式的步骤:
private void Button_Click(object sender, RoutedEventArgs e) { ToastTemplateType toastTemplate = ToastTemplateType.ToastText01; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); // 获取模板里的文本节点 XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); // 设置要显示的文本内容 toastTextElements[0].InnerText = "这是一段全常规样式的Toast消息"; // 关键步骤:把文本样式从标题(粗体)改成正文(常规) XmlElement textElement = (XmlElement)toastTextElements[0]; // 方式一:使用预设的body样式 textElement.SetAttribute("hint-style", "body"); // 方式二:直接指定字体粗细为normal(更灵活) // textElement.SetAttribute("hint-font-weight", "normal"); // 创建并显示Toast通知 ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); }
方法2:使用自定义XML模板(更灵活)
如果你想完全掌控Toast的样式,也可以直接自定义XML模板,跳过系统预设的ToastText01:
private void Button_Click(object sender, RoutedEventArgs e) { // 自定义Toast XML模板 string toastXmlString = @" <toast> <visual> <binding template=""ToastGeneric""> <!-- 直接指定hint-style为body,或者hint-font-weight为normal --> <text hint-style=""body"">全常规文本的Toast内容</text> </binding> </visual> </toast>"; XmlDocument toastXml = new XmlDocument(); toastXml.LoadXml(toastXmlString); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); }
原理说明
系统预设的ToastText01模板对应的XML里,文本元素默认带有hint-style="header"属性,这个属性会让文本使用标题样式(粗体、字号更大)。我们只需要把这个属性改成body,或者直接设置hint-font-weight="normal",就能让文本变成常规样式啦。
内容的提问来源于stack exchange,提问作者SHIN JaeGuk
相关产品推荐
相关产品推荐

