gpt4 book ai didi

Silverlight下Javascript调用C#函数

转载 作者:行者123 更新时间:2023-11-30 13:43:54 25 4
gpt4 key购买 nike

我有一个使用 C# 的 Silverlight 应用程序,其中有 2 个主要函数,我想通过 JavaScript 函数访问它们。我已经在类中完成了 RegisterScriptableObject() 并为我想要访问的函数设置了 [ScriptableMember]。

这是 Silverlight 对象:

<div id="silverlightControlHost">
<object id="silverlightControl" data="data:application/x-silverlight," type="application/x-silverlight-2" width="1024px" height="300px">
<param name="source" value="DrawingWaveForm.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="2.0.31005.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>
</object>
<iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
</div>

这些是我的 JavaScript 函数:

    function Start()
{
var control = document.getElementById("silverlightControl");
control.Content.Page.Start();
}

function Stop()
{
var control = document.getElementById("silverlightControl");
control.Content.Page.Stop();
}

谁能告诉我哪里出错了,因为它似乎不起作用

最佳答案

正如 timheuer 所说,[Scriptable] 在您的 Silverlight 方法上。

在你的类(class)中这样调用:

HtmlPage.RegisterScriptableObject("Page", this);  

像这样从您的 javascript 调用标记为 Scriptable 的 Silverlight 方法:

function CenterMap(latitude, longitude)
{
var silvercontrol = document.getElementById("ctl00_cphMain_slControl");
if (silvercontrol)
silvercontrol.Content.Page.CenterOnCoordinates(latitude, longitude);
}

This page向您展示了这一点以及如何执行相反的操作,从 Silverlight 调用 javascript 方法。这是一个非常好的模型。

关于Silverlight下Javascript调用C#函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/581930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com