2011-12-15 32 views
1

我正在研究一個WPF應用程序,它的一個視圖中有Web瀏覽器。當我運行應用程序時,它工作正常,但Web瀏覽器控件位於我的wpf區域之上。我知道這與AirSpace問題有關。有沒有什麼辦法可以克服它?任何幫助將不勝感激。WPF應用程序中的Web瀏覽器控件沒有空域問題?

感謝

回答

0

這是一個已知的問題,因爲Neeraj職位。但與WPF 4.5這似乎解決了,所以如果你不介意使用測試版本,你應該download Visual Studio 11

1

這個問題在WPF 4.5中沒有解決。 網絡中有一些信息,下面提到的屬性可以在4.5版本的Web瀏覽器控件中使用,但是該計劃已經被刪除。所以你需要自己處理空域問題。

WebBrowser.CompositionMode = System.Windows.Interop.CompositionMode.Full; WebBrowser.IsRedirected = true;

您可以做的解決方法是將Web瀏覽器控件的高度設置爲零,當其他控件出現在Web瀏覽器控件的前面時。

找到示例下面的代碼,

假設,你在主窗口的web瀏覽器控件。當你執行一些動作時,例如:點擊一個按鈕,你有另一個用戶控件,它位於MainWindow之上。但是,由於空域問題,網絡瀏覽器不在其父控制中,而是處於您的控制之上。

FIX: 標準修正是你可以設置網頁瀏覽器的高度爲零,當你觸發一些其他控制它取決於你的情況。下面是一個示例實現。

在MainWindow.Xaml中包含事件。

Activated="Window_Activated" 
Deactivated="Window_Deactivated" 

在Xaml.cs中通過設置高度來處理場景。

private void Window_Activated(object sender, EventArgs e) 
{ 
    wb.Height = double.NaN; 
} 

private void Window_Deactivated(object sender, EventArgs e) 
{ 
    wb.Height = 0; 
}