【问题标题】:How can I attach a Silverlight OOB to a Winforms panel?如何将 Silverlight OOB 附加到 Winforms 面板?
【发布时间】:2010-03-29 19:27:45
【问题描述】:

总结:

我希望在我当前的 Winforms 应用程序中使用 Silverlight/WPF 的美感。应用程序只能访问完整的 .NET Framework 2.0,不多也不少。我能想到的唯一可能性是使用 Com+ 自动化的 Silverlight OOB 应用程序,但我不知道如何将 Silverlight 应用程序附加到父 Winforms 应用程序中的面板。

详情:

我目前有一个 winforms 应用程序,并希望利用 WPF 中改进的 GUI 功能,但我的许多用户仍在运行 .Net Framework 2.0 并拒绝更新到 3+。所以 WPF 不是我的选择。

我知道 Silverlight 只是 WPF 的一个子集,但它具有我正在寻找的大部分功能,并且只需要 Silverlight 插件。我已经阅读了 Silverlight 4 的 Com+ Automation,它可以让我访问完整的桌面 .Net Framework 2.0(我需要它)。为了使 Com+ Automation 在 Silverlight 中工作,我需要提升信任度,而我能找到的获得提升信任度的唯一方法是让我的 Silverlight 应用程序脱离浏览器 (OOB)。

我的问题是 OOB 应用程序似乎在其自己的容器窗口中运行,我需要将 Silverlight 应用程序嵌入到我的 Winforms 应用程序的面板中。我的 Winforms 应用程序不需要与 Silverlight 应用程序通信,反之亦然,这纯粹是为了将所有内容包含并显示在一个窗口中。

如果有其他方法可以获得我想要的结果,但我没有想到,请随时提出建议。

【问题讨论】:

    标签: c# winforms silverlight silverlight-oob


    【解决方案1】:

    最好的选择是托管Silverlight content within a WebBrowser Control。这将允许您的 Silverlight 内容在您的 Windows 窗体应用程序“内部”运行。

    COM 自动化对于将 silverlight 嵌入 Windows 窗体应用程序没有帮助。它的真正目的是在 Silverlight 中使用 COM,而不是相反。

    【讨论】:

    • 两者之间的通信可以通过javascript和DOM来实现。
    • 我需要 COM 自动化来从 Silverlight 中访问 .NET Framework 类,因此我必须创建一个 OOB 应用程序。据我所知,没有办法从 WebBrowser 控件加载 OOB 应用程序。
    • @JohnMcCon:我不认为你能做到你描述的那样。您最好的选择是按照 Reed 的建议,然后使用 javascript 实现 Silverlight 和 WinForm 应用程序之间的通信。
    • 是的。不幸的是,silverlight(按设计)在这里限制了你。您不能同时拥有浏览器内(允许嵌入)+ 减少限制。
    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2017-11-16
    • 1970-01-01
    相关资源
    最近更新 更多