2012-02-28 93 views
6

我想在窗体上显示HTML片段。我已经在网上查看了一些关于使用webform或文档布局等的例子,但没有任何适用于我的例子。在WPF表格上显示HTML片段

我们的网站上有一个系统,用户可以使用真实文本编辑器(CKEditor)输入通知。该消息保存在数据库中,办公室中所有计算机上的WPF应用程序都应显示该消息。

我想在我的WPF程序中支持HTML。 HTML不在页面中,它是数据库中的一段HTML,需要以WPF应用程序的呈现形式显示。

例如,如果有人输入<img src="http://www.google.com/google.jpg" />,它会在wpf应用程序中显示图像,当我从数据库中检索图像并将其显示在窗体上时。

这样做的最好方法是什么?

P.S.我无法使用Web浏览器,因为Windows的“AllowTranparency”设置为true。

+2

有你看了['web浏览器'](http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx)控制? – ChrisF 2012-02-28 09:28:58

+0

是的,我做了一个编辑。父窗口允许透明,所以我不能使用webBrowser – Eitan 2012-02-28 11:02:49

回答

6

WebBrowser控件添加到应用程序:

<Window x:Class="WpfBrowser.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <WebBrowser Height="311" HorizontalAlignment="Left" Name="webBrowser1" VerticalAlignment="Top" Width="503" /> 
    </Grid> 
</Window> 

然后使用WebBrowserNavigateToString从你的HTML字符串加载页面:

webBrowser1.NavigateToString("<html><head></head><body>First row<br>Second row</body></html>"); 
+0

我做到了这一点有什么奇怪的。你的例子可以工作,但在我的表单上,浏览器没有显示任何东西,它完全是白色的,但是当我右键单击它时,我可以查看源代码并查看上面放置的HTML。 – Eitan 2012-02-28 10:55:57

+0

@Eitan:请举例说明您使用的代码:xaml和后面的代码。我在''InitializeComponent()''后面调用了MainWindow构造函数中的'NavigateToString'',它工作正常。 – 2012-02-28 11:08:12

+0

是的,我弄清楚为什么它不起作用,我有一个淡化程序的动画。为了做到这一点,我需要设置允许透明度为true。当我做网页浏览器时,它不起作用,当AllowTransparency = true – Eitan 2012-02-28 11:53:50