[Windows Phone] StackPanel和Grid在布局中的使用
2012-11-12 13:48
465 查看
在WindowsPhone开发中,主要有三种布局方式,Canvas、Grid和StackPanel。
Canvas是以坐标的方式定位子元素,相当于Android中的AbsoluteLayout方式。Canvas当中也可以包含子Canvas。
Grid是以表格的方式定位子元素。可以定义行和列,然后将元素布局到表格当中。类似于Html中的Table元素。
StackPanel是以水平或者竖直方向对子元素进行排列。相当于Android中的LinearLayout,或者是JavaGUI中的FlowLayout。
个人认为,为了兼容多种屏幕,最好尽量多使用Grid和StackPanel布局方式。以下以一个常见的登陆窗口的例子来说明如果使用Grid和StackPanel布局。这里为了说明方便,使用了Grid和StackPanel两种方式。(用其中任何一种布局方式,都可以达到设计目的的。)
这里先定义了一个StackPanel,而且使用默认的Orientation,从上到下依次放入了文本显示控件、Grid、Grid和按钮控件。文本显示控件显示“Login”。第一个Grid设置了两列,第一列是文本控件,显示“UserName”,第二列是一个文本输入控件。第二个Grid和第一个Grid结构相同,用来输入密码。按钮控件显示“Login”,点击后触发“login_Click”事件。
整个UI虽然简单,但是基本说明了Grid和StackPanel布局的使用。
附界面图如下所示:
![](http://img.my.csdn.net/uploads/201211/12/1352699508_6491.png)
---------------------------------------------------------------------------
GL(arui319)
http://blog.csdn.net/arui319
<本文可以转载,但是请保留以上作者信息。谢谢。>
---------------------------------------------------------------------------
Canvas是以坐标的方式定位子元素,相当于Android中的AbsoluteLayout方式。Canvas当中也可以包含子Canvas。
Grid是以表格的方式定位子元素。可以定义行和列,然后将元素布局到表格当中。类似于Html中的Table元素。
StackPanel是以水平或者竖直方向对子元素进行排列。相当于Android中的LinearLayout,或者是JavaGUI中的FlowLayout。
个人认为,为了兼容多种屏幕,最好尽量多使用Grid和StackPanel布局方式。以下以一个常见的登陆窗口的例子来说明如果使用Grid和StackPanel布局。这里为了说明方便,使用了Grid和StackPanel两种方式。(用其中任何一种布局方式,都可以达到设计目的的。)
phone:PhoneApplicationPage x:Class="PhoneApp1.Login" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480" shell:SystemTray.IsVisible="True"> <StackPanel x:Name="LoginPanel"> <TextBlock x:Name="PageTitle" Text="Login" Style="{StaticResource PhoneTextTitle1Style}" HorizontalAlignment="Center" Margin="0,30,0,0" /> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid Grid.Column="0"> <TextBlock Text="UserName:" Style="{StaticResource PhoneTextLargeStyle}" HorizontalAlignment="Center" /> </Grid> <Grid Grid.Column="1"> <TextBox x:Name="name" HorizontalAlignment="Stretch" /> </Grid> </Grid> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid Grid.Column="0"> <TextBlock Text="Password:" Style="{StaticResource PhoneTextLargeStyle}" HorizontalAlignment="Center" /> </Grid> <Grid Grid.Column="1"> <TextBox x:Name="pass" HorizontalAlignment="Stretch" /> </Grid> </Grid> <Button x:Name="login" Content="Login" HorizontalAlignment="Center" Margin="0,30,0,0" Padding="30,3,30,5" Click="login_Click" /> </StackPanel> </phone:PhoneApplicationPage>
这里先定义了一个StackPanel,而且使用默认的Orientation,从上到下依次放入了文本显示控件、Grid、Grid和按钮控件。文本显示控件显示“Login”。第一个Grid设置了两列,第一列是文本控件,显示“UserName”,第二列是一个文本输入控件。第二个Grid和第一个Grid结构相同,用来输入密码。按钮控件显示“Login”,点击后触发“login_Click”事件。
整个UI虽然简单,但是基本说明了Grid和StackPanel布局的使用。
附界面图如下所示:
![](http://img.my.csdn.net/uploads/201211/12/1352699508_6491.png)
---------------------------------------------------------------------------
GL(arui319)
http://blog.csdn.net/arui319
<本文可以转载,但是请保留以上作者信息。谢谢。>
---------------------------------------------------------------------------
相关文章推荐
- Windows Phone 7 使用Canvas Grid StackPanel进行布局管理
- Windows Phone 7 使用Canvas Grid StackPanel进行布局管理
- WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
- WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
- WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
- Windows Phone开发之布局Grid,Canvas,StackPanel
- 背水一战 Windows 10 (53) - 控件(集合类): ItemsControl 的布局控件 - ItemsStackPanel, ItemsWrapGrid
- Silverlight 2学习笔记二:三个基本布局控件(Canvas、StackPanel、Grid )
- windows phone:Expression Blend实例中文教程(5) - 布局控件快速入门StackPanel,ScrollViewer和Border
- WPF(Grid , StackPanel布局等入门)
- 三个基本布局控件(Canvas、StackPanel、Grid )
- 背水一战 Windows 10 (38) - 控件(布局类): Panel, Canvas, RelativePanel, StackPanel, Grid
- 学习UWP开发-Grid和StackPanel表格布局
- WPF(Grid , StackPanel布局等入门)
- silverlight布局和式样中的常用三大控件 Canvas Grid StackPanel
- 重新想象 Windows 8 Store Apps (7) - 控件之布局控件: Canvas, Grid, StackPanel, VirtualizingStackPanel, WrapGrid, VariableSizedWrapGrid
- XAML布局:StackPanel、Grid、生成连连看游戏布局
- WPF布局(1) 使用StackPanel面板进行简单的布局
- WPF编程学习——布局 StackPanel、WrapPanel、DockPanel、Canvas、Grid
- 【全面解禁!真正的Expression Blend实战开发技巧】十一章 全面解析布局(Grid & Canvas &StackPanel &Wrappanel)