我有一个使用客户端对象模型使用SharePoint列表的WPF应用程序。
客户希望能够使用Rich Text填写其中一个字段。这包括格式,如粗体/颜色/字体类型/等。它还包括超链接。
我从SharePoint获得的信息存储在一个字符串中,看起来像这样:
< div class = \“ExternalClass82C42B1E597D49188F88ECA8C4EEB083 \”>< p> Ticker Item 3 Body< span style = \“color:#000000 \”>< / span> y<< / p>< ; / DIV>
当我使用我在此处找到的建议时:Can I bind HTML to a WPF Web Browser Control?
看起来像这样:
Ticker Item 3Bodyâ€<< / p>
最后有什么小“—?是否有正确的方法在我的WPF应用程序中显示包含可点击的超链接和格式的Rich Text?
提前致谢。
答案 0 :(得分:1)
对于任何来这里寻找解决方案的人来说,答案是双重的。
1)正在提出错误的问题。使用Web浏览器控件不是最好的方法。你不能强迫链接在IE中打开(至少,不容易),窗口的行为就像一个Web浏览器。按F5将刷新窗口,这将清空它,因为浏览器中没有地址。
无论如何,问题是WPF没有使用正确的字符集。将此添加到您的html将解决浏览器问题:
html = String.Format("<html><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; CHARSET=utf-8\"><body>{0}</body></html>", html);
2)你真正想要做的是使用FlowDocumentScrollViewer。有关如何执行此操作的说明如下: How can I get a FlowDocument Hyperlink to launch browser and go to URL in a WPF app?