小编Att*_*ász的帖子

如何在 WPF 中初始化 WebView2?

我正在尝试在 WPF 应用程序中使用 WebView2。我在文档其他帖子中读到,我应该调用EnsureCoreWebView2Async()或设置Source属性才能初始化 WebView。如果我设置Source,它会正确加载网页,但我不能这样做,因为我的html内容在内存中(并且不允许写入磁盘)。

于是我尝试调用初始化方法:

var webView = new WebView2();

webView.NavigationCompleted += Navigation_Completed;
webView.Initialized += new EventHandler((object sender, EventArgs e) => { 
    webView.NavigateToString(myHtml);
});

await webView.EnsureCoreWebView2Async(null);
Run Code Online (Sandbox Code Playgroud)

此代码的运行被该EnsureCoreWebView2Async()方法阻止。我什至可以等待一分钟,但什么也没有发生,它只是卡在初始化中。没有异常,没有错误信息。我在 UI 线程上运行此代码,但当我在另一个线程上调用此方法时,发生了同样的事情。

有人经历过这种行为吗?有任何想法吗?

c# wpf webview2

7
推荐指数
1
解决办法
7554
查看次数

由于 DPI 意识,Microsoft Store 认证失败

我曾想将我的应用程序的新版本(WPF 通过 Desktop Bridge 转换为 UWP)发布到 Microsoft Store,但它未能通过认证并出现以下警告:

  • 文件 **.exe 既没有在清单中显示 PerMonitorV2,也没有调用 DPI 感知 API(例如:user32!SetProcessDpiAwarenessContext 或 user32!SetThreadDpiAwarenessContext)。
  • 该应用程序 *** 不支持 DPI。

我有以下问题:

  1. 首先,我在去年年底发布了我的应用程序的第一个版本,DPI 感知没有任何问题。所以这是一个新的测试?

  2. 由于这只是一个警告,所有其他测试都已通过,这可能是认证过程失败的原因吗?

  3. 所以我试图让我的应用程序 DPI 感知......

根据这个描述,我调用了SetProcessDpiAwarenessContext函数并检查了所有四个值。使用unawareSystem aware标志时,我的应用程序看起来很模糊,使用Per Monitor标志时看起来不错,但是当我请求屏幕尺寸时,它返回原始宽度和高度,不计算比例(我有 150% 的比例),因此我的窗口被定位到屏幕的错误部分。问题是,如果只需要设置这 4 个标志,并且没有一个标志作为默认值(不设置任何内容),那么默认设置是什么?

好的,这里列出了 5 个标志,但它们都不起作用,就好像没有设置任何东西一样。

多谢!

c# wpf publishing uwp desktop-bridge

5
推荐指数
1
解决办法
1084
查看次数

标签 统计

c# ×2

wpf ×2

desktop-bridge ×1

publishing ×1

uwp ×1

webview2 ×1