我有一個 Webview2 應用程式,它需要能夠以window.open某種方式攔截呼叫并配置結果視窗(例如,使其不可調整大小、無框架、洗掉出現的默認位置欄等)。
到目前為止,我知道我需要攔截NewWindowRequested事件并將 的NewWindow屬性分配給EventArgs新的 Webview2 控制元件,但是我無法讓它作業,而且我還沒有找到任何列出嘗試此示例的檔案。
我正在使用 WPF。
另請注意,我是 WPF 和 WebView2 的新手,所以也許我正在做的事情完全沒有意義。
這大致是我的代碼:
public static async void CoreWebView2_NewWindowRequested(object sender, CoreWebView2NewWindowRequestedEventArgs e) {
var obj = e.GetDeferral(); // I think I need to do this to ensure that the resulting window ends up as the return of window.open
var win = new System.Windows.Window(); // create my WPF window
var w = new WebView2(); // create my Webview control
win.Content = w; // site the Webview control?
await w.EnsureCoreWebView2Async(MainWindow.Webview.CoreWebView2.Environment);
e.NewWindow = w.CoreWebView2;
obj.Complete();
}
我看到的問題是Task回傳的 byEnsureCoreWebView2Async永遠不會完成。
我正確設定了嗎?為什么不EnsureCoreWebView2Async解決?
uj5u.com熱心網友回復:
看來我必須打電話win.Show()才能EnsureCoreWebView2Async Task完成。
也許我真的只想在 webview 內容加載后顯示視窗,但這至少是一個好的開始。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/330497.html
標籤:C# 小白 .net-core-3.1 网页视图2
