2009-10-06 44 views
3

可以給我一個提示如何在我的WPF應用程序的WebBrowser控件中顯示「覆蓋控件」?我想將導航圖形顯示爲覆蓋圖,以便用戶可以選擇一個功能,並在選擇導航控件後取消選擇。覆蓋WPF應用程序中的WebBrowser控件?

現在還沒有真正體驗過WPF。 :(我不知道從哪裏開始,任何提示或鏈接都會很好,謝謝

回答

4

這裏會有問題,WPF瀏覽器控件存在「空域」問題,基本上,這意味着你不能把任何東西在瀏覽器控件的頂部。

work around是把你覆蓋控制到一個彈出控制。

+0

thx很多。看起來很有希望。從未聽說過「空域」問題。但很高興看到它可以輕鬆解決。你對我的問題的回覆速度有多快。令人印象深刻。 :) – pantarhei 2009-10-06 20:47:08

+1

我怎麼能不能從卡爾工作貼出「解決辦法」?不幸的是,我不能問原來的笨蛋卡爾。源代碼下載鏈接被破壞,但我想我得到了確切的XAML(除了我刪除了按鈕命令)。任何人都可以發佈工作副本嗎? – newman 2012-05-19 03:33:02

0

存在使用鉻wpf based browser,它應該讓你像對待任何其他wpf對象,而不是activex瀏覽器控件。

+0

thx的信息。我也會看看它。但現在上面的工作看起來不錯。 – pantarhei 2009-10-08 14:32:02

0

我發現了一種超越是,雖然這有點破解。基本上,您可以像WinForm控件一樣創建控件,並使用WindowsFormsHost來託管它們。

WindowsFormsHost將位於Web瀏覽器控件的頂部。

正如我所說,不理想,但會工作,如果你絕望。

0

WPF web瀏覽器控件的空間很難通過,但是,當顯示動畫時可以最小化網頁瀏覽器控件的高度,並在任務結束時再次設置高度。

此問題的更好的解決方法是通過處理瀏覽器控件的高度。下面找到一個簡單的場景。

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

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

在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; 
}