winform和silverlight交互

 

silverlight 和winform的结合使用比较简单,将silverlight承载在页面上,页面运行在winform上的webbrowser中即可。

这样的情况下,我没找到页面中silverlight和winform直接交互的方案,因此我用javascript做媒介打通silverlight和winform。

简单示例:

1. silverlight访问winform

winform可以直接自己的方法给页面js,只需要将需要暴露的方法设置为public,同时设置承载页面的form的com可见性为true并且提高信任级别:

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public partial class Form1 : Form

{

   public string Hello(){return "Hello World"};

 }

页面调用winform方法:在页面上添加js函数

  function Hello() {                       
            var s = window.external.Hello();           
            return  s;
        }

silverlight调用js

HtmlWindow win = HtmlPage.Window;

win.Invoke("Hello",null);

这样就简单完成silverlight调用winform方法的过程。

 

winform访问silverlight
1) winform调用js
首先设置webbrowser控件的ObjectForScripting属性为true,然后调用如下代码:
 HtmlDocument htmlDoc = webBrowser1.Document;
 htmlDoc.InvokeScript(...)

2. js调用silverlight

 

posted @ 2010-12-28 09:12  漫游者  阅读(2952)  评论(0编辑  收藏  举报