首页 文章

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

提问于
浏览
1

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

列表框名称是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 回答

  • 3

    利用项目的索引

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

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

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

    然后继续

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

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

    如何设置所选项目的背景颜色?你为 ListBox 更改了 ControlTemplate 吗?

相关问题