Das folgende Beispiel zeigt ein einfaches Grid-Layout mit zwei Spalten (columns) und zwei Zeilen (rows). Die Breiten -und Höhenangaben können fix in Pixel gemacht werden (Bsp. Width="400"
) oder relativ mit Prozentangaben (Bsp. Width="5*"
für 50%) oder automatisch an die Größe des Inhalts angepasst werden (Bsp. Width="Auto"
).
Grid-Layout
Die Indizes eines Grids beginnen bei Null (0). Die Angabe Grid.Column="0" Grid.Row="0"
bezeichnet also die erste Spalte in der ersten Zeile. Mit diesem Grundwissen kann man schon ein einfaches Grid erstellen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <Grid ShowGridLines="True"> <Grid.ColumnDefinitions> <ColumnDefinition Width="5*" /> <ColumnDefinition Width="5*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <toolkit:HubTile Grid.Column="0" Grid.Row="0" Title="One" Background="{StaticResource PhoneAccentBrush}" /> <TextBlock Grid.Column="0" Grid.Row="1" Text="top left" TextAlignment="Center"></TextBlock> <toolkit:HubTile Grid.Column="1" Grid.Row="0" Title="Two" Background="{StaticResource PhoneAccentBrush}" /> <TextBlock Grid.Column="1" Grid.Row="1" Text="top right" TextAlignment="Center"></TextBlock> </Grid> |
Screenshot
Kompletter XAML-Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <phone:PhoneApplicationPage x:Class="PhoneApp4.MainPage" 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" xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls" xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> <Grid x:Name="ContentPanel" ShowGridLines="True"> <Grid.ColumnDefinitions> <ColumnDefinition Width="5*" /> <ColumnDefinition Width="5*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <toolkit:HubTile Grid.Column="0" Grid.Row="0" Title="One" Background="{StaticResource PhoneAccentBrush}" /> <TextBlock Grid.Column="0" Grid.Row="1" Text="top left" TextAlignment="Center"></TextBlock> <toolkit:HubTile Grid.Column="1" Grid.Row="0" Title="Two" Background="{StaticResource PhoneAccentBrush}" /> <TextBlock Grid.Column="1" Grid.Row="1" Text="top right" TextAlignment="Center"></TextBlock> </Grid> </phone:PhoneApplicationPage> |
Hinweis 1: Die Angabe {StaticResource PhoneAccentBrush}
kann benutzt werden, um die Akzentfarbe des Telefons zu benutzen.
Hinweis 2: Wer nochmal nachschauen möchte, wie ein Hub-Tile aus dem Windows Phone Toolkit verwendet wird, kann dies hier tun: [post id=3877]Hub Tile Control verwenden[/post].