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

Применение цвета фона для всей строки Grid в XAML Silverlight

Я пытаюсь применить градиентный фон только к одной строке в сетке Silverlight XAML, которую я создал.

Я могу сделать что-то вроде этого без проблем:

<Grid>
    <Grid.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Black" Offset="0" />
            <GradientStop Color="White" Offset="1" />
        </LinearGradientBrush>
    </Grid.Background>

    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>

    <!-- components and various stuffs -->
</Grid>

К сожалению, это относится к градиенту ко всей сетке.

Кажется, я не могу применить градиент (или даже цвет) к определению отдельной строки в сетке. Возможно ли это?

Спасибо!

4b9b3361

Ответ 1

Используйте Border, а затем используйте Grid.Row и Grid.ColumnSpan, чтобы поместить его в определенную строку Grid что ты хочешь.

<Grid>
   <Grid.ColumnDefinitions>
       <ColumnDefinition/>
       <ColumnDefinition/>
   </Grid.ColumnDefinitions>
   <Grid.RowDefinitions>
       <RowDefinition/>
       <RowDefinition/>
   </Grid.RowDefinitions>

   <Border Grid.Row="1" Grid.ColumnSpan="2">
      <Border.Background>
         <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Black" Offset="0" />
            <GradientStop Color="White" Offset="1" />
         </LinearGradientBrush>
      </Border.Background>
   </Border>

   <!-- other controls in the grid -->
</Grid>

Ответ 2

Если вы хотите имитировать два цвета в вертикальном порядке, вы также можете использовать свойство Offset. Если вы установите эти два значения на одно и то же значение, вы получите это симуляцию:

<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="Green" Offset="0.366" />
                <GradientStop Color="Red" Offset="0.366" />
            </LinearGradientBrush>
</Border.Background>