我正在尝试在代码中设置列表框的背景颜色。我可以使用它来处理列表框项目,但不能使用列表框本身。
以下是适用的代码(使用ListBoxItem):
private void SetBackgroundGradient()
{
var styleListBox = new Style(typeof(ListBoxItem));
var myBrush = new LinearGradientBrush();
myBrush.GradientStops.Add(new GradientStop(Color.FromArgb(255, 0, 0, 0), 0.0));
myBrush.GradientStops.Add(new GradientStop(Color.FromArgb(255, 255, 255, 255), 1.0));
styleListBox.Setters.Add(new Setter
{
Property = BackgroundProperty,
Value = myBrush
});
lstTopics.ItemContainerStyle = styleListBox;
}
现在,如果我更改代码以尝试使用ListBox本身,我得到的只是一个白色背景。这是代码:
private void SetBackgroundGradient()
{
var styleListBox = new Style(typeof(ListBox));
var myBrush = new LinearGradientBrush();
myBrush.GradientStops.Add(new GradientStop(Color.FromArgb(255, 0, 0, 0), 0.0));
myBrush.GradientStops.Add(new GradientStop(Color.FromArgb(255, 255, 255, 255), 1.0));
styleListBox.Setters.Add(new Setter
{
Property = BackgroundProperty,
Value = myBrush
});
lstTopics.Style = styleListBox;
}
知道我可能做错了吗?
如果您需要澄清我的要求,请告诉我。
提前致谢。
答案 0 :(得分:2)
我解决了自己的问题。这是由于我自己的错误。
我在ListBox属性中有以下内容:
Background =“{x:Null}”
我不知道那是怎么到达那里的。可能以某种方式默认设置。
嗯,它已经解决了。上面的代码有效。您可以通过代码将列表框的背景设置为渐变,只要您没有设置Background = null:)
由于