Применение цвета фона для всей строки 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>
К сожалению, это относится к градиенту ко всей сетке.
Кажется, я не могу применить градиент (или даже цвет) к определению отдельной строки в сетке. Возможно ли это?
Спасибо!
Ответы
Ответ 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>