如何以编程方式更改列表框中所选项目的背景颜色?

时间:2014-02-28 09:57:14

标签: c# xaml windows-phone-8 listbox

我正在尝试更改列表框中所选项目的背景颜色。它会改变背景颜色但下次如果我选择另一个项目,则前一个选定项目的背景颜色应设置为null或默认值。

列表框名称是lstContacts。

private void lstContacts_SelectionChanged(object sender,SelectionChangedEventArgs e)

lstContacts.ClearValue(ListBox.BackgroundProperty);//its not working   
 ListBoxItem item = lstContacts.ItemContainer.ContainerFromItem(lstContacts.SelectedItem) as ListBoxItem;
item.Background = new SolidColorBrush(Colors.Red);

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

利用项目的索引

var item = ListBox_Main.Items[0] as ListBoxItem ;
item.Background = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 255, 255, 0))

答案 1 :(得分:1)

这很简单。在更改其他项目的背景颜色之前,请重置整个列表视图背景颜色。

lstContacts.Background = new SolidColorBrush("your original color here");

然后继续

ListBoxItem item = lstContacts.ItemContainer.ContainerFromItem(lstContacts.SelectedItem) as ListBoxItem;
item.Background = new SolidColorBrush(Colors.Red);

答案 2 :(得分:0)

无论何时选择,所选项目都已经设置了背景颜色,无论是以编程方式还是通过点击项目。

如何设置所选项目的背景颜色?您是否更改了ControlTemplate的{​​{1}}?