かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Metro スタイルアプリケーションのコンテンツ領域の大きさ

Metro スタイルアプリケーションでコンテンツを置ける場所って決まってるみたいです。

これに従うようにXAMLを定義すると以下のような感じになりますね。

<Page
    x:Class="Application9.BlankPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Application9"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="140"/>
            <RowDefinition/>
            <RowDefinition Height="130"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="120"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Button Style="{StaticResource BackButtonStyle}" Grid.Row="0" Margin="36,0,0,36" d:LayoutOverrides="Margin"/>
        <TextBlock TextWrapping="Wrap" Text="サンプルアプリケーション" Style="{StaticResource PageHeaderTextStyle}" VerticalAlignment="Bottom" Grid.Column="1" Grid.Row="0" Height="40" d:LayoutOverrides="Margin"/>
        <Border BorderBrush="Black" BorderThickness="1" Grid.Column="1" Grid.Row="1" Background="#FFCAC8FF" d:LayoutOverrides="Margin"/>

    </Grid>
</Page>

Borderを置いてる場所がコンテンツ領域です。

かちっと決まってるってことはタイトルどんなふうに表示しようとかとりあえず悩まなくても平気ということでありがたいですね。