Roe*_*elF 23 html c# wpf .net-3.5
我一直在拼命寻找在WPF应用程序中显示HTML的简单方法.有一些选项:
1)使用WPF WebBrowser控件
2)使用Frame Control
3)使用第三方控件
但是,我遇到了以下问题:1)WPF WebBrowser控件不是真正的WPF(它是一个包装在WPF中的Winforms控件).我找到了一种为此创建包装器的方法,并使用DependencyProperties导航到带有绑定和propertychanged的HTML文本.这个问题是,如果你在WPF scrollviewer中放置Winforms控件,它不会尊重z-index,这意味着winform始终位于其他WPF控件之上.这非常烦人,我试图通过创建一个承载ElemenHost等的WindowsFormsHost来解决它.但这显然完全破坏了我的绑定.
2)如果显示HTML内容,则帧控制具有相同的显示问题.不是一种选择.
3)我还没有找到WPF的原生HTML显示.所有选项都是winforms,并且存在上述问题.
我现在唯一的出路就是使用微软的HtmlToXamlConverter,它有时会很难崩溃.(MSDN)
有没有人对如何在WPF中显示HTLM有任何其他建议,没有这些问题?
抱歉这个长期问题,希望有人知道我在说什么......
如果您无法使用 WebBrowser,则最好的选择是将 HTML 内容重写为 FlowDocument(如果您使用的是静态 HTML 内容)。
否则,正如您提到的,您必须对 WebBrowser 进行特殊处理,您是对的,它的行为不像“真正的”WPF 控件。您可能应该创建一个可以绑定到的 ViewModel 对象,该对象代表 WebBrowser 控件,您可以将所有难看的非绑定代码隐藏在一处,然后再也不会打开它:)
| 归档时间: |
|
| 查看次数: |
16980 次 |
| 最近记录: |