在WPF中使用WebBrowser时无法正常工作
问题描述:
我试图在我的WPF
应用程序中主持WebBrowser
,该应用程序将用于显示闭路电视摄像机。我目前使用它有两个问题。在WPF中使用WebBrowser时无法正常工作
首先,WebBrowser
的行为不像我期待的其他WPF
UI元素。我已将它设置在Grid
之内,但它不填充到行/列。它只会看起来像这样;
从正常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>");
}
答
要回答你的第一个问题
刚刚从XAML,这将使WebBrowser
以填充整个屏幕拆下RowDefinition
和ColumnDefinition
。您已将Grid
定义为2行2列,因此网格内的控制WebBrowser
默认占用第一行的第一列。
为了解答您的第二个问题,由于安全原因,网站的发布者不允许您在iframe
中显示其内容。相反,你可以在iframe
cctvWB.Navigate(@"http://www.bbc.co.uk");
如果你想的Webbrowser填补电网尝试
Navigate
直接导航到该URL而不是它的,你为什么要定义具有2行2列网格?错误是自我解释的,你不能将该网站嵌入到框架中。为什么不使用WebBrowser.Navigate('url')? – Pikoh