作成したXAML Silverlightグリッドの1行だけにグラデーションの背景を適用しようとしています。
私は問題なくこのようなことをすることができます:
<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>
残念ながら、これはグラデーションをグリッド全体に適用します。
グリッド内の個々の行定義にグラデーション(または色)を適用できないようです。出来ますか?
ありがとう!
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プロパティも使用できます。これら2つを同じ値に設定すると、次のシミュレーションが得られます。
<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>
あなたはもっともっとできる:)
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Green" Offset="0.3" />
<GradientStop Color="Red" Offset="0.3" />
<GradientStop Color="Red" Offset="0.7" />
<GradientStop Color="Yellow" Offset="0.7" />
<GradientStop Color="Yellow" Offset="0.9" />
<GradientStop Color="Blue" Offset="0.9" />
</LinearGradientBrush>
</Border.Background>