0

我将构建一个 Silverlight 应用程序,该应用程序托管在一个空 SharePoint 项目的自定义 Web 部件中。我正在使用 SharePoint 2010 Silverlight 4 和 .net 3.5 。

我的任务和问题是在 SharePoint 网站上制作自定义功能区。此功能区中有一个按钮,可访问 Silverlight 方法。我已经制作了丝带和按钮,但现在我不能再进一步了。

在我的经典 C# Web 部件中,我有以下代码:

"<div id='silverlightControlHost' style='width:100%;height:100%;'>" +
                            "<object id='SLP' data='data:application/x-silverlight-2,' type='application/x-silverlight-2' width='100%' height='600'>" +
                                "<param name='source' value='Silverlight_File/BMS_C_M_Silverlight.xap' />" +
                                "<param name='initParams' value='<%= InitParameters %>' />" +
                                "<param name='background' value='white' />" +
                                "<param name='minRuntimeVersion' value='4.0.50401.0' />" +
                                "<param name='autoUpgrade' value='true' />" +
                                "<a href='http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0' style='text-decoration:none'>" +
                                "<img src='http://go.microsoft.com/fwlink/?LinkId=161376' alt='Get Microsoft Silverlight' style='border-style:none'/>" +
                                "</a>" +
                            "</object>"

在 Mail 方法中的 MainPage.xaml.cs 中:

HtmlPage.RegisterScriptableObject("CallSilverlightCode", this);

在同一个文件中:

[ScriptableMember]
        public void ShowAlertPopup()
        {

            MessageBox.Show("Message From JavaScript");

        }

在功能区的 elements.xml 中:

<CommandUIHandler
          Command="CallSilverlight"
          CommandAction="javascript:var SLPlugin = document.getElementById('SLP'); SLPlugin.Content.CallSilverlightCode.ShowAlertPopup();"/>
        </CommandUIHandlers>

有了所有这些东西,功能区中的按钮应该从 Silverlight 应用程序中调用“ShowAlertPopup”方法,但我不这样做。

我搜索所有应该有帮助的东西,但我什么也没找到。我通过部署IE调试器等查看了IE调试器中的许多东西......

任何人都可以帮忙吗?看到问题或错误?

感谢您的回答

比利卜

4

1 回答 1

0

我有一个解决方案。我做了一个新项目作为沙盒解决方案,将 Silverlight 应用程序插入 aspx 站点并按照本教程的步骤操作

教程

它不是自定义功能区选项卡,但我可以访问 Silverlight 应用程序。

于 2012-09-19T11:38:55.657 回答