在WPF中使用WebBrowser时无法正常工作

问题描述:

我试图在我的WPF应用程序中主持WebBrowser,该应用程序将用于显示闭路电视摄像机。我目前使用它有两个问题。在WPF中使用WebBrowser时无法正常工作

首先,WebBrowser的行为不像我期待的其他WPF UI元素。我已将它设置在Grid之内,但它不填充到行/列。它只会看起来像这样;

enter image description here

从正常WPF来看我本来期望的WebBrowser以适应整个主机。这是它的简单的XAML;

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
    <WebBrowser x:Name="cctvWB"/> 
</Grid> 

其次,它似乎并不想显示常用的网页,如谷歌或BBC,虽然我相信这可能是一些与我HTML,错误信息读取“为帮助保护您输入本网站的信息的安全性,此内容的发布者不允许将其显示在框架中。“

这是我的HTML;

private void CCTVLoad(object sender, RoutedEventArgs e) 
{ 
    cctvWB.NavigateToString(@"<html> 
           <head> 
           </head> 
           <body> 
            <iframe src = " + "http://www.bbc.co.uk" + @"></ iframe > 
           </body> 
           <html>"); 
} 
+4

如果你想的Webbrowser填补电网尝试Navigate直接导航到该URL而不是它的,你为什么要定义具有2行2列网格?错误是自我解释的,你不能将该网站嵌入到框架中。为什么不使用WebBrowser.Navigate('url')? – Pikoh

要回答你的第一个问题

刚刚从XAML,这将使WebBrowser以填充整个屏幕拆下RowDefinitionColumnDefinition。您已将Grid定义为2行2列,因此网格内的控制WebBrowser默认占用第一行的第一列。

为了解答您的第二个问题,由于安全原因,网站的发布者不允许您在iframe中显示其内容。相反,你可以在iframe

cctvWB.Navigate(@"http://www.bbc.co.uk");