我有一个包含不同颜色列表框项目的列表框,每个项目都包含文本。我想在每个上面从上到下应用一个标准的光线渐变图案。
通过将样式应用于包含GradientStops的列表框,我可以在C#中使用特定颜色执行此操作。但是,我不希望将单个颜色渐变应用于整个列表框。我正在寻找“开始X%比声明的颜色更轻,最终以声明的颜色”的方式。
我还考虑使用自己的颜色渐变为每个listboxitem单独设置样式,但无法找到实现此目的的方法。
列表框是在xaml中定义的,因此解决方案可以是xaml或C#。有什么想法吗?
感谢。
答案 0 :(得分:0)
我记得做过这样的事情......
要将此类样式应用于每个单独的项目,请使用ItemContainerStyle
。
答案 1 :(得分:0)
这是你在找什么?
<ListBox.ItemTemplate>
<DataTemplate>
<Border Margin="5,5,7,7" Background="WhiteSmoke"
BorderBrush="#FF444444" BorderThickness="1" Padding="5">
<TextBlock Text="{Binding}" Width="150">
<TextBlock.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="Yellow" Offset="0.0" />
<GradientStop Color="Red" Offset="0.25" />
<GradientStop Color="Blue" Offset="0.75" />
<GradientStop Color="LimeGreen" Offset="1.0" />
</LinearGradientBrush>
</TextBlock.Background>
</TextBlock>
</Border>
</DataTemplate>