WPF帧控制

时间:2009-03-06 07:17:31

标签: c# wpf wpf-controls

我有一个包含Frame控件的WPF应用程序。帧控件显示html内容。 html页面包含一个JavaScript函数,我希望在框架和WPF代码上加载html页面后调用它?有没有办法可以调用WPF框架控件和WPF代码中加载的html页面的JavaScript方法?

3 个答案:

答案 0 :(得分:3)

您无法与框架内的HTML进行交互。为了与HTML交互,您可以使用WPF的.NET 3.5 SP1的WebBrowser控件。

您可以在此视频中看到WebBrowser控件的实际操作:

http://channel9.msdn.com/posts/AdamKinney/WPF-35-SP1-App-Model-with-Jennifer-Lee/

答案 1 :(得分:1)

无法访问DOM,所以我很害怕。如果这是你肯定需要的东西那么你最好的选择可能是从System.Windows.Forms嵌入WinForms WebBrowser控件。

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:f="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 
  xmlns:fi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration.dll" >
  <Grid>  
    <fi:WindowsFormsHost>
      <f:WebBrowser x:Name="BrowserControl" Url="http://www.myurl.com/"/>
    </fi:WindowsFormsHost>
  </Grid>
</Page>

答案 2 :(得分:0)

在HTML页面中使用<body onload="javascript:alert('hi its loaded. do what you want here');">,例如 myhtmlpage.html

然后在WPF代码中使用框架XAML控件(<Frame Name="myWpfFrame" Source="http://myurl/myhtmlpage.html">)。


此解决方案可以正常运行,假设您只想调用 一次 ,而 仅在 之后调用 页面已加载。

如果你想多次调用js,可以在需要的时候从代码中设置帧控件的source属性......如... myWpfFrame.Source = myWpfFrame.Source;