2009-10-30 35 views
1

我目前正在研究Silverlight商業應用程序,所以遇到了一些小問題,我正在尋找一些幫助。確定頁面高度的Silverlight插件?

在應用程序中,我正在開發一些頁面(在Silverlight中)可能會變得很長,但我發現ASPX或瀏覽器正在確定頁面大小,因此Silverlight控件試圖適合這個..但不能這樣剪輯內容。

我找的行爲如下:

所有網格設置爲自動,讓他們承擔其內容的大小(圖片,表格擴展等),這應該允許電網(至少垂直),並且這應該在Silverlight擴展以適應/容納內容時在瀏覽器中創建滾動條。

我該如何實現這種行爲?

基本上所有的ASPX頁面,都是Silverlight的容器......整個應用程序將通過Silverlight完成。

回答

0

這是我做的,最終,它遠非完美,但也許有人可以把它和改進:

private void Page_SizeChanged(object sender, SizeChangedEventArgs e) 
    { 
     BrowserInformation oInfo = System.Windows.Browser.HtmlPage.BrowserInformation; 

     double nHeight=0; 
     if (oInfo.Name.ToLower().Contains("explorer")) 
     { 
      nHeight = (double)HtmlPage.Document.DocumentElement.GetProperty("clientHeight"); 
     } 
     else if (oInfo.Name.ToLower().Contains("netscape")) 
     { 
      nHeight = (double)HtmlPage.Window.GetProperty("innerHeight"); 
     } 


     if ((e.NewSize.Height + 160) > nHeight) 
     { 
      HtmlPage.Document.Body.SetStyleAttribute("height", (e.NewSize.Height + 160) + "px"); 
     } 
     else 
     { 
      HtmlPage.Document.Body.RemoveAttribute("style"); 
     } 
    } 
0

您面臨的行爲是由於控件上HTML集的限制。它可以通過預先將100%的高度上的所有容器的層次結構來解決,並通知體元件時的控制的尺寸改變:

HTML例如:

<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%;"> 
<head runat="server"> 
    <title>SilverlightApplication1</title> 
</head> 
<body style="height:100%;margin:0;"> 
    <form id="form1" runat="server" style="height:100%;"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <div style="height:100%;"> 
      <asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/SilverlightApplication1.xap" MinimumVersion="2.0.31005.0" Width="100%" Height="100%" /> 
     </div> 
    </form> 
</body> 
</html> 

並且在控制所述通知後面的代碼:

public Page() 
{ 
    InitializeComponent(); 
    SizeChanged += new SizeChangedEventHandler(Page_SizeChanged); 

} 

void Page_SizeChanged(object sender, SizeChangedEventArgs e) 
{ 
    HtmlPage.Document.Body.SetStyleAttribute("height", e.NewSize.Height + "px"); 
} 
+0

謝謝你會放棄它。 – Oliver 2009-10-30 09:14:37

+0

這是半工作......問題是,我使用的RIA框架和用戶控制(這是主頁)再次獲取窗口的大小......我必須在內頁上執行此操作,然後添加到大小上以考慮主窗體上的橫幅和各種其他元素。 建議? – Oliver 2009-10-30 11:29:32