2011-12-15 60 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; 
}