【问题标题】:Showing pieces of HTML on WPF Form在 WPF 表单上显示 HTML 片段
【发布时间】:2012-02-28 09:26:00
【问题描述】:

我想在我的表单上显示 HTML 片段。我在网上查看了一些关于使用网络表单或文档布局等的示例,但对我没有任何帮助。

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

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

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

最好的方法是什么?

附:我无法使用网络浏览器,因为 Windows 将“AllowTranparency”设置为 true。

【问题讨论】:

  • 你看过WebBrowser控件吗?
  • 是的,我进行了编辑。父窗口有allowtransparency所以我不能使用webBrowser

标签: c# .net wpf winforms


【解决方案1】:

将 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>");

【讨论】:

  • 奇怪的是我这样做了。您的示例有效,但在我的表单上,浏览器没有显示任何内容,它是完全白色的,但是当我右键单击它时,我可以查看源代码并看到您在上面放置的 HTML。
  • @Eitan:请举例说明您使用的代码:xaml 和后面的代码。我在 InitializeComponent(); 之后的 MainWindow 构造函数中调用了 NavigateToString 并且它可以工作。
  • 是的,我知道为什么它不起作用,我有一个让程序淡入的动画。为此,我需要将 Allow Transparency 设置为 true。当我使用网络浏览器时,它在 AllowTransparency = true 时不起作用
  • 遗憾的是,即使在 2016 年,这个旧的非 WPF 原生组件仍然是在 WPF 应用程序中显示 HTML 的最简单和最明智的选择。
猜你喜欢
  • 2011-02-18
  • 2011-01-28
  • 2019-01-08
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多