国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
一步一步學Silverlight 2系列(3):界面布局

一步一步學Silverlight 2系列(3):界面布局

概述

Silverlight2 Beta 1版本發(fā)布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, VisualC#, IronRuby, Ironpython,對JSON、WebService、WCF以及Sockets的支持等一系列新的特性?!兑徊揭徊綄WSilverlight2系列》文章帶您快速進入Silverlight 2開發(fā)。

本文為系列文章第三篇,學習Silverlight 2中的界面布局,Silverlight 2中新增加了Grid和Panel兩個布局容器,使得界面布局更加的強大和靈活。

Canvas面板

Canvas是在Silverlight 1.0時代就有的一種基礎布局面板,它采用絕對坐標定位??梢允褂酶郊訉傩裕ˋttachedProperty)對Canvas中的元素進行定位,通過附加屬性我們指定控件相對于其直接父容器Canvas控件的上、下、左、右坐標的位置。如下面的XAML聲明了兩個矩形,它們分別相對于父容器Canvas的左邊距是50,相對于父容器Canvas的上邊距分別是50和150:

運行后界面的效果如下所示:

除了上面我們用到的Canvas.Top和Canvas.Left兩個附加屬性外,還有一個Canvas.ZIndex附加屬性。如果指定了兩個控件相對于父容器Canvas同樣的邊距,則后面聲明的控件父覆蓋前面聲明的控件。這時我們可以使用Canvas.ZIndex屬性來改變它們的顯示順序,如下面的XAML聲明:

<Canvas Background="#46461F">
<
Rectangle Fill="#0099FF" Width="160" Height="80"
Canvas.Top="100" Canvas.Left="100">

<
Rectangle Fill="#FF9900" Width="160" Height="80"
Canvas.Top="100" Canvas.Left="100"/>
</
Canvas>

指定兩個矩形相對于父容器Canvas的邊距相同,這時默認的后聲明的橙色矩形會覆蓋藍色矩形:

指定Canvas.ZIndex為1

<Canvas Background="#46461F">
<
Rectangle Fill="#0099FF" Width="160" Height="80"
Canvas.Top="100" Canvas.Left="100" Canvas.ZIndex="1"/>

<
Rectangle Fill="#FF9900" Width="160" Height="80"
Canvas.Top="100" Canvas.Left="100"/>
</
Canvas>

將會讓藍色矩形顯示在上面,值最大的顯示在最上面:

StackPanel

StackPanel支持用行或列的方式來進行頁面布局,默認情況下所有的子元素會垂直的排列顯示,如下面的XAML聲明三個矩形:

<StackPanel Background="#46461F">
<
Rectangle Fill="#0099FF" Stroke="White"
Width="100" Height="50" Margin="10"/>
<
Rectangle Fill="#0099FF" Stroke="White"
Width="100" Height="50" Margin="10"/>
<
Rectangle Fill="#0099FF" Stroke="White"
Width="100" Height="50" Margin="10"/>
</
StackPanel>

運行后在界面顯示效果如下:

當然我們也可以指定為水平排列,通過Orientation屬性指定:

<StackPanel Background="#46461F" Orientation="Horizontal">
<
Rectangle Fill="#0099FF" Stroke="White"
Width="100" Height="50" Margin="10"/>
<
Rectangle Fill="#0099FF" Stroke="White"
Width="100" Height="50" Margin="10"/>
<
Rectangle Fill="#0099FF" Stroke="White"
Width="100" Height="50" Margin="10"/>
</
StackPanel>

運行后界面顯示效果如下:

在這里為了讓各個控件之間有一定的距離,使用了Margin屬性,該屬性類似于HTML中的Margin。

Grid

Grid控件類似與HTML中的Table,只不過子元素不用放在單元格中。通過<Grid.RowDefinitions> 和<Grid.ColumnDefinitions>來定義Grid的行和列,使用Grid.Row和Grid.Column兩個附加屬性指定子元素在Grid中顯示的位置,這是一種非常靈活的布局方式。如下面的XAML聲明:

<Grid x:Name="LayoutRoot" Background="#46461F" ShowGridLines="True">
<
Grid.RowDefinitions>
<
RowDefinition Height="120"/>
<
RowDefinition Height="*"/>
</
Grid.RowDefinitions>
<
Grid.ColumnDefinitions>
<
ColumnDefinition Width="100"/>
<
ColumnDefinition Width="*"/>
</
Grid.ColumnDefinitions>
<
TextBlock Grid.Row="0" Grid.Column="0" Text="UserName:" VerticalAlignment="Center" Foreground="White"></TextBlock>
<
TextBlock Grid.Row="1" Grid.Column="0" Text="Password:" VerticalAlignment="Center" Foreground="White"></TextBlock>
<
TextBox Grid.Row="0" Grid.Column="1" Width="200" Height="30" HorizontalAlignment="Left"></TextBox>
<
TextBox Grid.Row="1" Grid.Column="1" Width="200" Height="30" HorizontalAlignment="Left"></TextBox>
</
Grid>

定義一個兩行兩列的Grid,做一個簡單的用戶登錄的布局,為了明顯起見,把ShowGridLines屬性設為True,以便能夠顯示出邊框線。同時,我們指定了第一行的高度為120,而第二行的則是剩余的高度,用*來指定。運行后效果如下:

綜合實例

分別了解了上面的三個布局控件,接下來我們看一個綜合實例,如何完成如下的一個取色器:

首先我們添加一個兩行兩列的Grid控件,分別指定行高和列寬:

<Grid x:Name="LayoutRoot" Background="White">
<
Grid.ColumnDefinitions>
<
ColumnDefinition Width="260" />
<
ColumnDefinition Width="*" />
</
Grid.ColumnDefinitions>
<
Grid.RowDefinitions>
<
RowDefinition Height="120" />
<
RowDefinition Height="120" />
</
Grid.RowDefinitions>
</Grid>

添加顏色顯示區(qū)域,用一個矩形顯示,放入Grid的第0行第1列:

<Rectangle Grid.Row="0" Grid.Column="1" x:Name="PreviewColor"
Fill="#FF6600" Margin="10" Stroke="#666666" StrokeThickness="2" />

再添加顏色值顯示區(qū),嵌套一個StackPanel控件,讓它里面的子控件垂直顯示:

<StackPanel Grid.Row="1" Grid.Column="1" >
<
TextBlock FontSize="12">Color</TextBlock>
<
TextBox x:Name="HexColor" Width="160" Height="30" Text="#FF6600" Margin="10,5" FontSize="11"/>
</
StackPanel>

左邊用四個Silder控件和四個TextBlock控件顯示,需要對Grid的行進行合并Grid.RowSpan屬性:

<StackPanel Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" VerticalAlignment="Center">
<
TextBlock Text="Alpha" FontSize="12" Margin="10,15,0,0"/>
<
Slider x:Name="AlphaSlider" Margin="20,0,10,0" Maximum="255" Value="255" ValueChanged="RedSlider_ValueChanged"/>
<
TextBlock Text="Red" FontSize="12" Margin="10,15,0,0"/>
<
Slider x:Name="RedSlider" Margin="20,0,10,0" Maximum="255" Value="255" ValueChanged="RedSlider_ValueChanged"/>
<
TextBlock Text="Green" FontSize="12" Margin="10,15,0,0"/>
<
Slider x:Name="GreenSlider" Margin="20,0,10,0" Maximum="255" Value="102" ValueChanged="RedSlider_ValueChanged"/>
<
TextBlock Text="Blue" FontSize="12" Margin="10,15,0,0"/>
<
Slider x:Name="BlueSlider" Margin="20,0,10,0" Maximum="255" Value="0" ValueChanged="RedSlider_ValueChanged"/>
</
StackPanel>

這樣我們就完成了上面這樣相對復雜的界面布局,對Slider控件添加事件處理程序:

private void RedSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Color color = Color.FromArgb((byte)AlphaSlider.Value, (byte)RedSlider.Value, (byte)GreenSlider.Value, (byte)BlueSlider.Value);

PreviewColor.Fill = new SolidColorBrush(color);
HexColor.Text = color.ToString();
}
運行后,可以選取不同的顏色值:

結束語

關于界面布局就說到這里,在Silverlight 2中,通過上面的三種布局控件相結合,可以進行非常強大和靈活的界面布局。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WPF中的控件布局
silverlight中如何方便在多個"場景"即Xaml文件之間隨意切換?
Windows Phone新手開發(fā)教程(二)
使用silverlight構建一個工作流設計器(二)
Windows Presentation Foundation 數(shù)據(jù)綁定:第一部分
Silverlight實例教程 – Datagrid,Dataform數(shù)據(jù)驗證和ValidationSummary
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服