Silverlight显示问题

时间:2008-10-01 09:05:21

标签: css silverlight

我已经创建了一个很好的silverlight控件正在完成我想要它做的事情,它看起来很棒:)当我在测试项目ASPX示例文件或HTML示例文件中托管它时,它很好地显示。

我现在必须在我现有的ASP.NET 2.0项目中使用该控件,该项目具有精美的设计。我遇到的问题是控件没有准确显示它应该如何:

  • 加载进度未显示
  • 在将鼠标移动到包含
  • 的咏叹调之前,控件通常不会显示

显然,我的HTML / CSS设计会导致这种情况,但找到问题会非常耗时 - 所以有人知道这方面的知识吗?有关如何确保控件正确显示的规则是什么?应该使用哪些CSS属性?

PS:由于我有一个2.0应用程序,我正在使用Silverlight的对象标记方法,它包含在高度和宽度设置为风格的DIV中。

请求了代码段。它是这样的(基本上是Silverlight测试项目的HTML测试页的副本(完美地工作)):

<div id="silverlightControlHost" style="height: 300px; width: 750px;">
    <object data="data:application/x-silverlight," type="application/x-silverlight-2-b2"
    width="100%" height="100%">
    <param name="source" value="Contiki.SilverLight.FileUploader.xap" />
    <param name="onerror" value="onSilverlightError" />
    <param name="background" value="white" />                            
    <a href="http://go.microsoft.com/fwlink/?LinkID=115261" 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>

此DIV包含在表格中的单元格中,该表格也是较大设计的一部分。提到了很多CSS。不知道这是否有帮助...

4 个答案:

答案 0 :(得分:3)

自己找到原因...

事实证明,当控件放在html表中时,Silverlight会出现显示问题。 Found information about this on the silverlight forum。这是关于beta 2,但我已经升级到发布版本,它仍然是一个问题。

  

试试这个。添加高度和宽度   包含Silverlight的表   控制。您可能还想添加一个   里面的白色空间的单一字符   包含控件的TD。

     

基本上是在渲染表格时   它无法“看到”大小   内容因此它要么没有渲染   全部或仅渲染到a的大小   单个空格字符。

     

- 约翰斯托克顿

我的设计与嵌套表格相当复杂,所以我实际上还没有能够使它工作。

<强>更新

我最终实现的实际修复是一个小的JavaScript,“刷新”包含&lt; DIV&gt;。这是:

<script type="text/javascript">
    function refreshSL()
    {
        var div = document.getElementById('silverlightControlHost');
        div.style.display = 'block';
    }
    refreshSL();
</script>

我把它放在我的HTML下面的实际SL标记之下,然后它起作用(我想在页面加载事件上调用它将是正确的事情。

答案 1 :(得分:0)

CSS问题有时很难调试。在不同的浏览器中行为是否相同?你的CSS在任何地方使用“浮动”吗?应用程序是否在表格之外的同一页面上正常工作,然后在div之外?

答案 2 :(得分:0)

正如亚当所说,CSS问题是一个真正的PITA。通常当我遇到这样的事情时,我首先指向一个空白的CSS而不是“花哨的”,然后开始添加样式直到我能够重现问题。

答案 3 :(得分:0)

LOL

我遇到了同样的问题,这让我很生气。问题被隔离到Internet Explorer。在所有其他浏览器中工作正常(甚至是Opera)。

你的解决方案肯定是黑客攻击。因为这真的是解决IE中的错误所以你可以正式使用它。

从技术上讲,我们不应该使用表格来进行布局,但在现实世界中,这是使各种工具始终跨浏览器工作的唯一方法。