Абсолютные градиентные вершины в линейных градиентных кустах
Как я могу указать абсолютный Offset
с для GradientStop
в моем LinearGradientBrush
?
у меня есть GridView
с LinearGradientBrush
в качестве фона:
<Grid.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0" Color="White" />
<GradientStop Offset="0.25" Color="White" />
<GradientStop Offset="0.4" Color="WhiteSmoke" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Grid.Background>
Когда сетка имеет размер по умолчанию, белая область градиента имеет высоту около 60 пикселей. Когда я изменяю размер сетки, градиент растягивается и белая область становится больше. Как я могу сохранить белую область такой же высоты, но растянуть остальную часть градиента?
Белая область соответствует одной строке в сетке, поэтому, если есть способ сделать градиентный интервал каждой строкой, кроме первой, это будет работать просто отлично.
2 ответа
Я в конечном итоге разделить Grid
в несколько Grids
чтобы получить эффект, который я хотел. Верхняя сетка имела белый фон, средняя имела градиент, а нижняя имела конечный цвет.
Насколько я знаю, вы не можете смешивать относительные и абсолютные градиентные остановки, как вы описываете.
Однако подобное решение должно работать для описанного вами случая (я предполагаю, что у вас есть три столбца и пять строк, поэтому подставьте свои собственные значения):
<Rectangle Grid.ColumnSpan="3" Fill="White" />
<Rectangle Grid.ColumnSpan="3" Grid.Row="1" Grid.RowSpan="4">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="White" />
<GradientStop Offset="0.4" Color="WhiteSmoke" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<!-- define the rest of the items in your Grid here -->
Это заполнит фон так, как вы описываете, и, пока вы перечисляете другое содержимое сетки после двух прямоугольников, они будут отображаться сверху.
Конечно, для этого необходимо знать количество строк и столбцов в сетке. Если это динамика, вы можете достичь того же результата, используя преобразователи значений.