【问题标题】:Resize object tag to fit silverlight content调整对象标签的大小以适合 silverlight 内容
【发布时间】:2011-06-27 10:33:11
【问题描述】:

我遇到以下问题:

我有一个托管 silverlight 内容的网页。 silverlight 内容是导航感知的,因此它始终是相同的 html 页面和相同的 silverlight 控件。然而,当用户从控件内的一个页面导航到另一个页面时,内容当然会发生变化。 不同的页面有不同的大小要求,在某些情况下,内容的最终高度是未知的,因为内容来自网络服务。

我希望 Silverlight 内容的高度根据它的实际需要动态变化。我看到了许多使 silverlight 控件适合浏览器窗口的解决方案,但我希望 silverlight 内容只有它需要的实际高度并在必要时溢出,以便我可以使用浏览器滚动条。

该页面还应该有一个静态背景图像,当对象标签与 silverlight 内容的大小不完全一样时,这会给我带来一些问题。

我想要达到的效果或多或少像这个网页: http://www.codegarden.de/

如果可能,背景应该在 html 页面中,silverlight 控件应该是中间部分的内容,并且应该随着浏览器滚动条滚动。

谁能帮助我?谢谢!

【问题讨论】:

    标签: c# javascript html silverlight


    【解决方案1】:

    您可以让 silverlight 应用程序在托管页面上执行 javascript 命令,这将反过来设置 <Object> 标记的大小。

    类似的东西:

    using System.Windows.Browser; 
    
    // set a global variable
    HtmlPage.Window.Eval(String.Format("setSilverlightObjSize({0},{1});",newW,newH)); 
    

    setSilverlightObjSize 是您在托管页面中编写的 javascript 函数。

    类似的东西:

    function SetObjectTagProps(w,h)
    {
        var obj = document.getElementById("silverlightObj");
        obj.width = w;
        obj.height = h;
    }
    

    【讨论】:

    • 是的,我尝试了类似的方法,但我怎么知道 silverlight 需要多少空间?我覆盖了 ArrangeOverride 方法,但似乎此时 silverlight 已经尝试适应对象容器提供的区域,而我作为参数得到的大小太小了......
    • “silverlight 需要多少”实际上取决于您的应用程序和完成布局的方式。对于您的某些 XAML 代码,这可能是一个新问题。
    • 它不是非常特定于应用程序的。我只希望 silverlight 占据它需要的所有空间。大多数控件具有自然大小或适合其内容。当我将对象标签设置为 100% 的大小时,我基本上得到了我想要的结果,除非浏览器窗口变小或内容太大并且 silverlight 试图将所有内容放入一个太小的盒子中而不是在资源管理器窗口中溢出并导致滚动条。
    • 在这种情况下你想怎么办?您希望大小为 100%,但不要超过浏览器的窗口?在这种情况下,你想让你的 silverlight 处理里面的布局吗?
    • 不,我总是希望我的内容具有完整尺寸。基本上我不在乎浏览器的窗口大小是多少。如果浏览器窗口足够大,可以很好地显示我的内容,但如果不是,我不在乎,我只希望浏览器显示滚动条来滚动我的内容。
    猜你喜欢
    • 2012-01-06
    • 2010-10-18
    • 1970-01-01
    • 2013-06-25
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多