Подтвердить что ты не робот

С# Изменить конкретную строку backgroundcolor

Я создал новый проект из шаблона Grid App (XAML) (С# Windows Store). Пока что я ничего не изменил в шаблоне, но я хотел бы изменить цвет фона из определенной строки в сетке.

<!--
    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>
4b9b3361

Ответ 1

Вы не можете установить цвет фона на 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>

EDIT: Обновлено для Silverlight; TextBlock не имеет Background, поэтому вам нужно поместить элемент управления в другой контейнер Border или grid, который имеет фон. Код обновлен, чтобы отразить это.

Ответ 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>

обратите внимание, что вы можете указать диапазон столбцов в случае включения большего количества столбцов