在HTML页面中完全嵌入Silverlight应用程序?

时间:2009-08-03 16:02:21

标签: .net silverlight

我仍在尝试解决在网站上显示图像而不将图像设为外部的问题。由于数据:方案不适用于较旧的浏览器或大图像,我目前正在尝试使用Silverlight。

我设法通过Base64解码嵌入编码图像并使用InitParams传递它,但实际上我只是把我的问题移开了:我现在有一个外部XAP文件而不是外部图像...

有没有办法获取XAP文件并以某种方式将其嵌入HTML中?或者,我可以在这种情况下使用基于JavaScript的Silverlight 1.1吗?它实际上只是显示一个以字符串形式传递的图像。

1 个答案:

答案 0 :(得分:1)

对于你想要做的事情,听起来你可能想看看Sam Ruby的SVG with XAML fallback,它在支持它的浏览器中显示SVG,并在IE中通过Silverlight呈现。

您可以像这样内联XAML(来源:MSDN):

    <html>
    <head>
      <title>Display Date</title>
      <!-- Define Loaded event handler for TextBlock. -->
      <script type="text/javascript">
        function setDate(sender, eventArgs)
        {
          sender.text = Date();
        }
      </script>
    </head>

    <body bgcolor="Teal">

    <!-- Define XAML content. -->
    <script type="text/xaml" id="xamlContent"><?xml version="1.0"?>
      <Canvas
        xmlns="http://schemas.microsoft.com/client/2007"
        Background="Wheat">
        <TextBlock
          Canvas.Left="20"
          FontSize="24"
          Loaded="setDate" />
      </Canvas>
    </script>

    <div id="silverlightControlHost">
      <object type="application/x-silverlight" width="100%" height="100%" id="slc">
        <param name="source" value="#xamlContent"/>
        <param name="onload" value="onLoaded" />
        <param name="iswindowless" value="true" />
      </object>
      <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
    </div>
    </body>
    </html>

请注意,Firefox 2有一个bugzilla 356095的错误(prevented using this with XHTML DOCTYPE)。我相信这可能是固定的。