0

我创建了一个不错的 silverlight 控件,它完全按照我的意愿去做,它看起来很棒:) 当我在测试项目 ASPX 示例文件或 HTML 示例文件中托管它时,它会很好地显示出来。

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

  • 加载进度不显示
  • 在我将鼠标移到包含它的 aria 上之前,该控件通常不会变得可见

显然这是我的 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

4 回答 4

3

自己找到原因了...

事实证明,当控件放置在 html 表格中时,Silverlight 存在显示问题。在 silverlight 论坛上找到了有关此的信息。这是关于 beta 2 的,但我已经升级到了发布版本,它仍然是一个问题。

试试这个。向包含 Silverlight 控件的表添加高度和宽度。您可能还想在包含控件的 TD 内添加一个空白字符。

基本上,当表格被渲染时,它无法“看到”内容的大小,因此它要么根本不渲染,要么只渲染为单个空白字符的大小。

——约翰斯托克顿

我的设计对于嵌套表来说非常复杂,所以我实际上还不能让它工作。

更新:

我最终实现的实际修复是一个“刷新”包含 <DIV> 的小型 JavaScript。这里是:

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

我把它放在我的 HTML 中实际 SL 标记的下面,然后它就起作用了(我想在页面加载事件中调用它是正确的做法。

于 2008-10-22T13:10:41.907 回答
0

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

于 2008-10-01T16:08:16.443 回答
0

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

于 2008-10-02T16:37:48.580 回答
0

哈哈

我有同样的问题,这让我发疯。该问题被隔离到 Internet Explorer。在所有其他浏览器(甚至 Opera)中都能正常工作。

你的解决方案肯定是一个黑客。由于这实际上是针对 IE 中的错误的一种解决方法,因此您可以正式摆脱它。

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

于 2009-04-12T02:54:29.010 回答