.net - 如何在 ResourceDictionary 中存储 HTML 字符串?

标签 .net wpf xaml resourcedictionary

在 .NET (WPF) 中,我们可以轻松地在资源字典中存储简单的字符串,因此请考虑下一个示例...

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:sys="clr-namespace:System;assembly=mscorlib">

    <sys:String x:Key="PlainText">This is just a simple line of text</sys:String>

    <sys:String x:Key="FormattedText">This is more sophisticated</br>
         here we have <strong>multiple lines</strong> of text</br>
         plus some <strong>formatting</strong>.
    </sys:String>

</ResourceDictionary>

第一个字符串(带有“PlainText”键)完全合法并且工作正常。

但是,第二个字符串(带有“FormattedText”键)不被接受,因为使用多行和 HTML 语法与 XAML 语法冲突,因此 Visual Studio (2013) 显示以下错误消息:

  • “String”类型不包含任何可访问的构造函数。
  • 无法向“String”类型的对象添加内容。
  • br 在 Windows Presentation Foundation (WPF) 项目中不受支持
  • ...(更像那些)

问题是:如何在 WPF 资源字典中存储 HTML 文本,以便不需要额外/隔离的文件,也不会发生语法冲突?

也许 String 不是存储此类内容的最佳类型,在这种情况下还有其他可能吗?

请提供示例。

最佳答案

一切都在转义中,而不是多行

<sys:String x:Key="String1">
    This is more sophisticated &lt;br/&gt;
    here we have &lt;b&gt;multiple lines&lt;/b&gt;
    plus some formatting.
</sys:String>

顺便说一句,是 Blend 帮我解决了这个问题。

祝你好运!

关于.net - 如何在 ResourceDictionary 中存储 HTML 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23574763/

相关文章:

.net - C# 浏览器组件添加 header 参数

c# - 将自动化 ID 添加到绑定(bind)组合框项目

xaml - 在 XAML 中拉伸(stretch) ItemsControl 中的项目

c# - 如何向 xaml 中的绑定(bind)添加附加文本(或字符串)

C# GUI,必须显示一个巨大的表格并使其可排序

php - 服务器到客户端推送?

.net - 自定义线程在 Application_Start 中启动

c# - 在不安装 Python 的情况下在 .NET 环境中运行 Python 代码

wpf - 将按钮单击事件上的WPF上下文菜单更改为MVVM

wpf - Prism RequestNavigate 不起作用