c# 选中行listbox.items 颜色
时间: 2024-10-03 18:01:16 浏览: 38
color_list_listbox.zip_c# listbox 颜色_list 控件
在 C# 中,如果你想给 `ListBox` 中选中的项改变颜色,通常有两种方法:通过自定义 `ListBoxItem` 类,或者使用样式和模板(Style and Templates)来应用样式。这里我会提供两种方法的简单示例。
**方法一:自定义 ListBoxItem 类**
创建一个自定义的 `ListBoxItem` 类,添加一个属性来存储当前状态(是否选中),然后在 Paint 事件中检查这个状态来改变背景色:
```csharp
public class CustomListBoxItem : ListBoxItem
{
public bool IsSelected { get; set; }
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (IsSelected)
{
e.Graphics.FillRectangle(Brushes.YourDesiredColor, ClientRectangle); // 替换为你想要的颜色
}
}
}
// 在需要的地方创建和使用 CustomListBoxItem
CustomListBoxItem selectedItem = new CustomListBoxItem();
selectedItem.IsSelected = true;
listBox.Items.Add(selectedItem);
```
**方法二:样式与模板(WPF)**
在 WPF 中,你可以使用 DataTemplate 和 Style 来控制 `ListBoxItem` 的外观:
```xml
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource YourDesiredColorBrush}"/> // 替换为你的颜色资源
</Trigger>
</Style.Triggers>
</Style>
<ListBox ItemsSource="{Binding YourDataSource}">
<ListBox.ItemContainerStyle>
<Style BasedOn="{StaticResource {x:Null}}">
<Setter Property="Template">
<!-- 你的自定义模板 -->
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
```
在这里,你需要在 XAML 中定义一个颜色资源 (`YourDesiredColorBrush`) 并将其关联到你的颜色选择上。
阅读全文