在SilverLight中用來規劃整個版面Layout的Control主要有三種:

  • Grid: 就像Table一樣, 將物件以行列的方式對齊
  • StackPanel: 讓物件之間相對對齊, 如相鄰對齊或向上對齊
  • Canvas: 用絕對對齊(absolute positioning) 的方式放置物件(與SilverLight 1.0相符)

Grid

Grid 在使用VS2008開啟新檔案的時候就已經存在XAML裡面了, 格式會長這個樣子:

<UserControl x:Class="EasyGrid.Page"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Width="400″ Height="300″>

<Grid x:Name="LayoutRoot" Background="White">

</Grid>

你可以先規劃整個SilverLight App的框線, 以便之後的對齊作業, 定義的方式如下:

<Grid x:Name="LayoutRoot" Background="White">

<Grid.RowDefinitions>

<RowDefinition Height="50″ />

<RowDefinition Height="30*" MaxHeight="70″ />

<RowDefinition Height="40*" MaxHeight="70″ />

<RowDefinition Height="*" MinHeight="30″ MaxHeight="50″ />

<RowDefinition Height="Auto" MinHeight="5″ MaxHeight="30″ />

</Grid.RowDefinitions>

</Grid>

Height: 每一列的高度

MaxHeight: 能夠拉伸的最大高度 (* 表示以比例的方式定義高度, 兩倍高就是 2*)

MinHeight: 能夠拉伸的最小高度

StackPanel

Stack就是堆疊的意思, 使用StackPanel你可以將你的物件以左右堆疊或者上下堆疊的方式排列, 就像書本在書架上一樣. 它也是在SilverLight2.0經常使用的對齊工具. 下面以放置TextBlock, TextBox, CheckBox及Button 為例:

<StackPanel Background="Beige" Orientation="Vertical" >

<TextBlock Text="Your name?"

HorizontalAlignment="Left" Margin="10,2,0,1″/>

<TextBox Width="150″ Height="30″

HorizontalAlignment="Left" Margin="10,2,0,1″/>

<Button Content="Submit this information"

HorizontalAlignment="Left"

Margin="10,2,0,1″ Height="30″ Width="150″ />

<CheckBox Content="With Zing!" HorizontalAlignment="Left"

Margin="10,2,0,1″ />

</StackPanel>

屬性:

Background: Stack背景的顏色

Orientation: 排列方向, Vertical是垂直
在StackPanel內部的物件Margin="10,2,0,1″ 的Margin順序是左, 上, 右, 下.

Leave a reply

required

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>