WPF中的WebBrowser使用无法正常工作

时间:2016-02-29 08:58:17

标签: c# html wpf xaml

我正在尝试在我的WebBrowser应用程序中托管WPF,该应用程序将用于显示闭路电视摄像机。我目前使用它有两个问题。

首先,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>

其次,它似乎不想显示常见的网页,例如Google或BBC,但我相信这可能与我的HTML有关,错误消息显示为“To有助于保护您在本网站上输入的信息的安全性,此内容的发布者不允许将其显示在框架中。“

这是我的HTML;

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

1 个答案:

答案 0 :(得分:0)

回答第一个问题

只需从xaml中移除RowDefinitionColumnDefinition即可使WebBrowser填满整个屏幕。您已将Grid定义为2行2列,因此默认情况下Grid中的控件WebBrowser占用第一行的第一列。

要回答您的第二个问题,由于安全原因,该网站的发布者不允许您在iframe中显示其内容。相反,您可以尝试Navigate直接导航到网址,而不是在iframe

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