我的UI上有一個web瀏覽器。我問是否有可能不是直接顯示,而是通過圖像顯示,我希望只有在收到LoadCompleted事件時才更新圖像。 怎麼辦?WPF webBrowser:如何在渲染完成後向圖像顯示
3
A
回答
1
我不知道我是否理解你的問題,但如果我這樣做,你基本上只想顯示加載的網頁,只有當它的渲染完成。 (假設你將「LoadCompleted」事件掛鉤到「webBrowser1_LoadCompleted」方法)。此代碼使用Button(「button1」)來觸發導航,但您可以在任何其他地方使用它。
//here is the code that triggers the navigation: when the button is clicked, I hide the
//webBrowser and then navigate to the page (here I used Google as an example)
private void button1_Click(object sender, RoutedEventArgs e)
{
webBrowser1.Visibility = Visibility.Hidden;
webBrowser1.Navigate(new Uri("http://www.google.it"));
}
private void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e)
{
webBrowser1.Visibility = Visibility.Visible;
}
請記住,雖然,沒有顯示任何東西給用戶的時間長週期(如一個沉重的頁面)並不總是一個好主意,這取決於你正在寫的一種應用。不過,這取決於你。
0
(我決定離開以前的答案,如果有人需要它)
如果你想,直到出現新的一個離開的前一頁可見的,那麼我想你需要一個Windows DLL。這是我的方式。
在代碼文件的頂部插入這兩個import語句:
using System.Runtime.InteropServices;
using System.Windows.Interop;
然後,你需要聲明的DLL函數像這樣(在Window類):
[DllImport("user32")]
private static extern int LockWindowUpdate (IntPtr hWnd);
然後,讓我們修改的代碼在前面的回答有點:
private void button1_Click(object sender, RoutedEventArgs e)
{
IntPtr handle = new WindowInteropHelper(Application.Current.MainWindow).Handle;
LockWindowUpdate(handle);
webBrowser1.Navigate(new Uri("http://www.google.it"));
}
private void webBrowser1_DocumentCompleted(object sender, NavigationEventArgs e)
{
LockWindowUpdate(new IntPtr(0));
}
這應該保留最後LOA直到新頁面完成其渲染;正如你可能想象的那樣,DLL函數通過傳遞其句柄來簡單地鎖定窗口的更新。手柄0將其解鎖。
相關問題
- 1. WPF C#顯示完成後的圖像
- 2. 在渲染後顯示selectpicker
- 3. 如何在視圖渲染完成後調用方法3
- 4. 在後臺渲染圖像
- 5. 渲染完成後的IWebBrowser2顯示窗口
- 6. AS3加載完成後顯示圖像
- 7. SceneKit視圖向後渲染
- 8. 渲染的圖像不顯示Java Libgdx
- 9. 在WPF運行時渲染圖像
- 10. 在WPF中渲染EMF/WMF圖像XAML
- 11. 如何在完成線程後顯示圖像?
- 12. Three.js渲染完成
- 13. 渲染完整的UIImageView位圖圖像
- 14. 如何在元素完成渲染後立即運行函數?
- 15. 如何限制QScrollArea完成的渲染?
- 16. 在Loaded事件中渲染未完成
- 17. WPF圖像渲染的性能
- 18. 如何在後臺加載圖像,然後在完成時顯示頁面?
- 19. 如何在「DragListener完成後顯示Toast」
- 20. 渲染圖像
- 21. 如何防止MathJax在等待渲染完成時顯示原始TeX?
- 22. 在剃刀視圖中顯示/渲染圖像asp.net mvc
- 23. 如何使WebBrowser正確渲染WebPages?
- 24. 在渲染方向時在高程圖上顯示距離
- 25. 如何在rails3中渲染圖像select
- 26. 如何在asp.net mvc中渲染圖像?
- 27. 處理渲染完成
- 28. 如何讓圖像在完成後向下移動
- 29. 在UImage中顯示渲染圖標
- 30. GWT CellTable完成渲染後,如何獲取高度?
更改頁面時看到閃爍,出現灰色背景(嘗試過各種背景設置)。我希望新渲染的頁面覆蓋前一個沒有閃爍的頁面。也試過可見性但它是一樣的。 – P5music
我看到color =「#A0A0A0」是頁面的背景,然後圖像作爲背景加載 – P5music