WebView2 的 Source 属性未初始化 CoreWebView2

3

我花费了半个小时来解决这个烦人的问题,即如果未设置 Source 属性,则无法导航字符串。

最终,我想出了一个变通的方法,因为 WebView2 要求提供 HTML 文件的绝对路径或者什么都不提供。

Markdown.Focus(); 
Markdown.BringIntoView();

Markdown.Source = new Uri(Path.GetFullPath("null.html"), UriKind.Absolute);
Markdown.Visibility = Visibility.Visible;

Markdown.NavigateToString(htContent);

即使经过了这一切,它仍然显示“您需要设置源属性!!”。这让我疯狂。 null.html也是一个有效的HTML文件。它是空的,因为我需要显示的HTML太动态而无法缓冲到文件中。

我认为你应该跳过前两行或将它们移动到设置源代码的那一行下面。你在哪一行遇到了错误? - Poul Bak
@PoulBak 嘿,我知道你刚刚发布了一个答案,但是无论如何它都在最后一行与NavigateToString相关。 - wellinthatcase
我认为,它不喜欢空文档(空文档不是html)。但我的答案应该有效。 - Poul Bak
1个回答

3

尝试以下代码,代替您目前所使用的:

await Markdown.EnsureCoreWebView2Async();
Markdown.NavigateToString(htContent);

现在你不需要设置Source属性。

顺便说一下:你也不必设置其他属性,WebView2控件会自动显示。


WPF能否调用异步方法?我需要在KeyDown事件响应函数中使用它。我将在大约15分钟内进行测试。 - wellinthatcase
将事件处理程序方法标记为 async - Poul Bak
嗯,是的。没想到WPF会知道如何识别和调用协程,我猜我马上就会发现了。我会告诉你进展如何的。 - wellinthatcase
好消息,它已经过了。现在只需要解决一个缺失的 WebView2Loader.dll。 - wellinthatcase
1
在项目属性中,构建选项中选择“x86”或“x64”,而不是“anycpu”。 - Poul Bak

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