我已经创建了一个很好的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。不知道这是否有帮助...
答案 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中的错误所以你可以正式使用它。
从技术上讲,我们不应该使用表格来进行布局,但在现实世界中,这是使各种工具始终跨浏览器工作的唯一方法。