Silverlight 布局系統<b> Silverlight </b>
本主題介紹 Silverlight 布局系統。在構造外觀醒目、性能優良的使用者界面時,了解如何在 HTML 頁中定位插件以及在插件内如何和何時進行布局計算是非常重要的。
本主題包括下列各節。
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/cc645025%28VS.95%29.aspx#positioning_objects">Silverlight 插件的位置和尺寸</a>
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/cc645025%28VS.95%29.aspx#LayoutSystem_LayoutSystem">布局系統</a>
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/cc645025%28VS.95%29.aspx#LayoutSystem_BoundingBox">元素邊界框</a>
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/cc645025%28VS.95%29.aspx#LayoutSystem_MeasureArrange">測量和排列子元素</a>
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/cc645025%28VS.95%29.aspx#LayoutSystem_PanelsCustom">Panel 元素和自定義布局行為</a>
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/cc645025%28VS.95%29.aspx#window_resizing">視窗大小調整</a>
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/cc645025%28VS.95%29.aspx#seeAlsoToggle">相關主題</a>
Silverlight 插件的位置和尺寸
Silverlight 插件定義在其中顯示基于 Silverlight 的應用程式的區域。可以将該插件嵌入到某一宿主 HTML 頁中,并且可以将該插件以内聯方式定位到 HTML 頁顯示的某個位置,也可以使該插件占據整個 HTML 頁。是以,定位 Silverlight 對象時,有兩個參考架構:
插件内:将 Silverlight 圖面上的對象定位在該插件的邊界框内。大多數布局概述都介紹了此類型的定位。
布局系統
測量所有子元素後排列内容。
下面的章節将更詳盡地定義此過程及其調用方式。
元素邊界框
下圖示範了父面闆、其子元素以及包含該子元素的布局槽的尺寸。
下圖示範了一個子元素,該子元素進行了旋轉,并且現在超出了配置設定給它的布局槽。
當其他元素添加到父容器中時,元素周圍的邊界框可能會發生更改。根據所添加元素的類型和大小,邊界框可能會縮小或放大。
測量和排列子元素
當元素需要呈現到螢幕時或者元素的大小發生更改時,将調用布局系統。布局的第一個處理過程是測量處理過程,将在該過程中确定每個子元素的所需大小。第二個處理過程是排列處理過程,将在該過程中确定每個子元素邊界框的最終大小和位置。
Panel 元素和自定義布局行為
下表概括了可用的布局元素。
面闆名稱
說明
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/system.windows.controls.canvas%28v=VS.95%29.aspx">Canvas</a>
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/system.windows.controls.grid%28v=VS.95%29.aspx">Grid</a>
定義由行和列組成的靈活網格區域。
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/system.windows.controls.stackpanel%28v=VS.95%29.aspx">StackPanel</a>
将子元素排列成一行(可沿水準或垂直方向)。
上述每個布局容器都要考慮可能影響子元素排列方式的不同屬性。下表顯示了幾個此類常見屬性。
屬性名
布局影響
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/system.windows.frameworkelement.margin%28v=VS.95%29.aspx">Margin</a>
在對象及其布局槽之間建立空間。
将對象定位到其布局槽内。
<a target="_blank" href="http://msdn.microsoft.com/zh-cn/library/system.windows.controls.canvas.zindex%28v=VS.95%29.aspx">Canvas.ZIndex</a>
在兩個對象重疊時将一個對象定位到另一個對象的頂部。
Xaml代碼
<UserControl x:Name="RootElement" x:Class="WindowResizingSample.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid x:Name="LayoutRoot" Background="White"> </Grid></UserControl>
本文轉自My_King1 51CTO部落格,原文連結:http://blog.51cto.com/apprentice/1360645,如需轉載請自行聯系原作者