windows phone (21) Grid元素的Background和Clip

 

Grid是唯一可以在內部定製單元格的panel類,我們可以在grid中定製單元格,然後通過grid.row和grid.column定位grid包含的元素在哪個位置,功能比較強大,用到的時候比較多,且看他的屬性:【作者:神舟龍

 

Background

 

獲取或設置一個用於填充面板的 Brush所以我們可以對其背景進行繪製 ,比如下面的案例:
  1. <!--ContentPanel - 在此處放置其他內容--> 
  2.        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" 
  3.              
  4.              > 
  5.            <Grid.Background> 
  6.                <RadialGradientBrush> 
  7.                    <GradientStop Offset="0.9" Color="DarkBlue"></GradientStop> 
  8.                    <GradientStop Offset="0.8" Color="Firebrick"></GradientStop> 
  9.                </RadialGradientBrush> 
  10.            </Grid.Background> 
  11.        </Grid> 

它的顯示效果:

 

 Clip

 

 

獲取或設置用於定義Grid的內容邊框的 Geometry,下面的效果是實現的類似於天狗吃月最後一刻的效果

xaml代碼:

 

  1. <!--ContentPanel - 在此處放置其他內容--> 
  2.         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" 
  3.               > 
  4.             <Grid.Background> 
  5.                 <RadialGradientBrush> 
  6.                     <GradientStop Offset="0.9" Color="White"></GradientStop> 
  7.                     <GradientStop Offset="0.8" Color="Black"></GradientStop> 
  8.                 </RadialGradientBrush> 
  9.             </Grid.Background> 
  10.             <Grid.Clip> 
  11.                 <EllipseGeometry Center="240 250" RadiusX="180" RadiusY="190"></EllipseGeometry> 
  12.             </Grid.Clip> 
  13.         </Grid> 

效果:

 

 話說這樣的效果還不錯,只不過他不能通過修改參數實現天狗吃月的全過程,上面出現的效果是無意中做出了的;

Geometry 類

 

爲用於定義幾何形狀的對象提供基類,所以EllipseGeometry,GeometryGroup等所繼承它的類都可以,比如我們使用RectangelGeoMetry獲取矩形剪輯區域

 

xaml代碼:

  1. <!--ContentPanel - 在此處放置其他內容--> 
  2.        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" 
  3.              > 
  4.            <Grid.Background> 
  5.                <RadialGradientBrush> 
  6.                    <GradientStop Offset="0.1" Color="Purple"></GradientStop> 
  7.                    <GradientStop Offset="0.2" Color="Blue"></GradientStop> 
  8.                </RadialGradientBrush> 
  9.            </Grid.Background> 
  10.            <Grid.Clip> 
  11.                <RectangleGeometry > 
  12.                    <RectangleGeometry.Rect> 
  13.                        <Rect X="20" Y="30" Width="300" Height="400"></Rect> 
  14.                    </RectangleGeometry.Rect> 
  15.                </RectangleGeometry> 
  16.            </Grid.Clip> 
  17.        </Grid> 

效果:

 

 

我們可以從隱藏文件添加一些其他的元素:

 

  1. // 構造函數 
  2.         public MainPage() 
  3.         { 
  4.             InitializeComponent(); 
  5.             LayoutDesign(); 
  6.         } 
  7.         private void LayoutDesign() 
  8.         { 
  9.  
  10.             TextBlock DeptListHeading = new TextBlock(); 
  11.             DeptListHeading.Text = "Department"
  12.  
  13.             ListBox DeptList = new ListBox(); 
  14.             DeptList.Items.Add("Finance"); 
  15.             DeptList.Items.Add("Marketing"); 
  16.             DeptList.Items.Add("Human Resources"); 
  17.             DeptList.Items.Add("Payroll"); 
  18.             DeptList.Items.Add(DeptListHeading); 
  19.              
  20.               this.ContentPanel.Children.Add(DeptList); 
  21.  
  22.             
  23.         } 

 效果:

 

 這篇比較基礎

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章