WPF 自定义ComboBox下拉颜色控件
1.创建类
public class DataItem
{
public DataItem()
{
}
public string ColorName { get; set; }
public DataItem(string itemName)
{
this.ColorName = itemName;
}
}
2.添加前端
<ComboBox Name="txtColor" MinWidth="200" Height="30" SelectedValuePath="ColorName" Margin="2" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Rectangle Fill="{Binding ColorName}" Width="30" Height="30"></Rectangle>
<TextBlock Text="{Binding ColorName}"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
3.获取所有颜色名称
var props = typeof(Brushes).GetProperties();
4.赋值给ComboBox
List<DataItem> d1 = new List<DataItem>();
foreach (var item in props)
{
d1.Add(new DataItem { Name = item.Name });
}
this.txtColor.ItemsSource = d1;
5.选中项的颜色
this.txtColor.SelectedValue.ToString();
6.字符串转换颜色类型
BrushConverter brushConverter = new BrushConverter();
Brush brush = (Brush)brushConverter.ConvertFromString("Red");