搜尋此網誌

2009年11月23日 星期一

Silverlight:Grid劃份區域 & 動態裁切範圍(Grid 、Clip 的使用)

本篇主要說明在C#內指定裁切範圍,順便提一下以「*」來指定Grid範圍的方法(基本上...這兩樣東西是可以分開說明)。


首先準備好Grid:

<Grid x:Name="LayoutRoot" Loaded="doClip" Width="400" Height="200">

  <Rectangle Width="400" Height="200" Fill="Red"/>
  <Grid ShowGridLines="True" x:Name="GridToClip" >
    <Grid.ColumnDefinitions>
     <ColumnDefinition Width="2*"/>
     <ColumnDefinition Width="5*"/>
    </Grid.ColumnDefinitions>
    <Ellipse Width="50" Height="50"
      Fill="Green" Grid.Column="1">
    <Ellipse.RenderTransform>
     <TranslateTransform X="-150"/>
    </Ellipse.RenderTransform>

    </Ellipse>
  </Grid>
</Grid>

以上使用Grid.Column將區域分成兩個部份,其中並沒有使用Grid.Clip元件對任何一個區域做裁切的動作。

另外在指定 Column各別寬度的部份,『Width="2*"』及『Width="5*"』將Grid總算度以 2:5 的比例做分配,Column為1(第二欄)的地方置放一個Ellipse元件,並橫跨第一欄及第二欄,當裁切完成時,我們可以明白分辦裁切的效果。

接著在頁面載入時加入以下程式,可指定裁切屬性及範圍:

private void doClip(object sender, RoutedEventArgs e)
{
 GridToClip.Clip = new RectangleGeometry()
 {
  Rect = new Rect(0, 0, 200, 100)
 };
}

其中

  new Rect(0,0,200,100)

紅字部份分別指定double型態的Top、Left、Bottom、Right

沒有留言:

張貼留言