WPF与Windows WebBrowser控件的比较

3
在Windows窗体Web浏览器控件中,如果我有一个包含文本的字符串变量,我可以使用内存流通过 Webbrowser.documentstream 来显示数据。
然而,在WPF Web浏览器控件中,如果我使用相同的技术,什么也不会显示。但是“查看源代码页面”包含文本。
我该如何解决这个问题?
        Byte[] bytes = Encoding.Unicode.GetBytes(code);


        MemoryStream ms = new MemoryStream(bytes);

        //webBrowser.Navigate("http://www.wpf-tutorial.com");
        webBrowser.NavigateToStream(ms);

代码存储以下字符串

@"
<div style="color:Black;background-color:White;"><pre>
<span style="color:Blue;">using</span> System;
<span style="color:Blue;">using</span> System.Collections.Generic;
<span style="color:Blue;">using</span> System.Linq;
<span style="color:Blue;">using</span> System.Text;
<span style="color:Blue;">using</span> System.Threading.Tasks;

<span style="color:Blue;">namespace</span> ColorCodeTest{    
    <span style="color:Blue;">class</span> Program
    {
        <span style="color:Blue;">static</span> <span style="color:Blue;">void</span> Main(<span style="color:Blue;">string</span>[] args)
        {
            Console.WriteLine(<span style="color:#A31515;">&quot;&amp;lt;WTF&gt;&quot;</span>);
        }
    }
}

</pre></div>"
1个回答

1

我这边没问题,可能是文本本身有问题?尝试在将代码传递给控件之前通过HtmlEncode运行代码:

code = System.Web.HttpUtility.HtmlEncode(code);

不行 = / 仍然是一样的。如果我将其保存为HTML文件并使用navigate(),它可以工作。但我想从内存流中完成它。 - RStyle
再次测试,对我来说似乎运行良好。我唯一能看到的问题是您的代码似乎有一些格式不正确的HTML,应该改为Console.WriteLine(<span style="color:#A31515;">&quot;&lt;WTF&gt;&quot;</span>); - Mark Feldman
最后一件事,它本身不是有效的HTML,所以请尝试将其包装在一个正确的页面中,即code = "<html><head></head><body><pre>" + code + "</pre></body></html>"; - Mark Feldman
好奇怪。我的窗口样式是无。我将其设置为单边框,HTML 就显示了。然后我又将其恢复为无。现在它可以工作了。嗯。 - RStyle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接