11

グリッドアプリ(XAML)テンプレート(C#Windowsストア)から新しいプロジェクトを作成しました。これまでテンプレートでは何も変更していませんが、グリッドの特定の行から背景色を変更したいと思います。

<!--
    This grid acts as a root panel for the page that defines two rows:
    * Row 0 contains the back button and page title
    * Row 1 contains the rest of the page layout
-->
<Grid Style="{StaticResource LayoutRootStyle}">
    <Grid.RowDefinitions>
        <RowDefinition Height="140"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

行0(ページタイトルを含む)から背景色を変更したいと思います。何か案は??前もって感謝します!

この行は次のもので構成されます。

    <!-- Back button and page title -->
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>
        <TextBlock x:Name="pageTitle" Text="{StaticResource AppName}" Grid.Column="1" IsHitTestVisible="false" Style="{StaticResource PageHeaderTextStyle}"/>
    </Grid>
4

2 に答える 2

17

Grid.Row自体に背景色を設定することはできません。代わりに、この行を占めるものにBackgroundプロパティを設定してください。

例えば

<Grid Style="{StaticResource LayoutRootStyle}">
  <Grid.RowDefinitions>
    <RowDefinition Height="140"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>
  <Grid Background="Red" Grid.Row="0">
    <TextBlock>Test</TextBlock>
  </Grid>
</Grid>

編集:Silverlight用に更新。TextBlockには背景がないため、背景がある別の境界線またはグリッドコンテナにコントロールを配置する必要があります。これを反映するようにコードが更新されました。

于 2013-03-12T08:21:49.623 に答える
2

必要なところにボーダーを入れてみませんか

<Grid Style="{StaticResource LayoutRootStyle}">
  <Grid.RowDefinitions>
    <RowDefinition Height="140"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>
    <Border Background="Red" Grid.ColumnSpan="1"></Border>
    <TextBlock>Test</TextBlock>
    <Border Background="blue" Grid.Row="1" Grid.ColumnSpan="1"></Border>
    <TextBlock Grid.Row="1">Test2</TextBlock>
 </Grid>

より多くの列を含める場合は、列のスパンを指定できることに注意してください

于 2014-04-11T17:52:40.597 に答える