С# Изменить конкретную строку 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>
Ответы
Ответ 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>
обратите внимание, что вы можете указать диапазон столбцов в случае включения большего количества столбцов