2011-06-27 22 views
2

我遇到以下問題:調整對象標記以適應silverlight內容

我有一個託管silverlight內容的網頁。 silverlight內容是導航意識,所以它將始終是相同的html頁面和相同的silverlight控件。然而,當用戶從控件內的一個頁面導航到另一個頁面時,內容當然會改變。 不同的頁面具有不同的大小要求,並且在某些情況下,內容的最終高度未知,因爲內容來自Web服務。

我希望Silverlight內容的高度根據實際需要動態變化。我看到許多解決方案使Silverlight控件適合瀏覽器窗口,但我希望Silverlight內容僅具有所需的實際高度,並在必要時溢出,以便可以使用瀏覽器滾動條。

該頁面還應該有一個靜態背景圖像,當對象標記不完全是silverlight內容的大小時,該頁面會給我一些問題。

我要實現的是多了還是少想在這個網頁的效果: http://www.codegarden.de/

背景應該是在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函數。

soemthing像:

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

是的,我想類似的東西,但我怎麼知道Silverlight的空間有多大希望?我重寫了ArrangeOverride方法,但似乎Silverlight已經嘗試適合對象容器提供的區域,並且我得到的大小作爲參數太小... – aKzenT

+0

「Silverlight需要多少」是真的直至您的應用程序和佈局完成的方式。這可能是您的一些XAML代碼的一個新問題。 – Variant

+0

這不是特定應用程序。我只希望silverlight能夠佔用所有需要的空間。大多數控件具有自然大小或適合其內容。當我將對象標籤設置爲大小的100%時,我基本上得到了我想要的結果,除非瀏覽器窗口變小或內容太大,並且silverlight試圖將所有內容放入太小的框中,而不是溢出並導致瀏覽器窗口中的滾動條。 – aKzenT

相關問題