Ответ 1
Поработав над этим проектом некоторое время, я думаю, что я нашел более простое решение, размещенное на странице ASP.net.
<body>
<form id="form1" runat="server" style="height:100%">
<div id="silverlightControlHost">
<object id="SilverlightPlugin" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/VideoPlayer.xap"/>
<param name="onload" value="onload" />
<param name="initParams" value="txtUserIP=<%=Request.UserHostAddress %>,cc=true,m=/relative"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
</div>
</form>
</body>
Я предпочитаю использовать initParams с ASP <%=Request
... непосредственно в коде, чем возиться с JavaScript, чтобы изменить элемент управления в приложении Silverlight. После передачи его в InitParams вы можете загрузить значения в словарь ресурсов приложения. Я подробно расскажу об этом в своем сообщении в блоге: Передайте IP-адрес пользователя в Silverlight в качестве параметра (ПРИМЕЧАНИЕ. Если ссылка на мой сайт на benmccormack.com не работает, вам, возможно, придется сразу перейти на сайт и найти его. Я опубликовал рецензию на 26.09.2009).