[Windows Phone] StackPanel和Grid在布局中的使用

來源:互聯網
上載者:User

在WindowsPhone開發中,主要有三種布局方式,Canvas、Grid和StackPanel。

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布局的使用。

附介面圖如下所示:

 

---------------------------------------------------------------------------

GL(arui319)

http://blog.csdn.net/arui319

<本文可以轉載,但是請保留以上作者資訊。謝謝。>

---------------------------------------------------------------------------

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.