嗨我有一个让我的WPF颜色选择器工作的问题。我认为它是因为我以错误的方式起诉Databinding,但我不确定,因为我没有完全理解它。WPF Databinding制作颜色选择器
我想要的是一个下拉列表,它包含我列表中的颜色(包含如显示的实际颜色不仅仅是文本)。
继承人我的代码:
WPF:
<ComboBox Name="cb_farbe" Text="farbe" HorizontalContentAlignment="Center" IsEditable="True" Grid.Row="7" Grid.Column="1" VerticalAlignment="Center" Grid.ColumnSpan="2" Loaded="CbFarbe">
<ComboBox.ItemTemplate>
<DataTemplate>
<Rectangle Grid.Column="0" Margin="5, 10" Fill="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
C#:
private void CbFarbe(object sender, RoutedEventArgs e)
{
List<Color> colors = new List<Color>
{
Color.Blue,
Color.Green,
Color.LightBlue,
Color.Black,
Color.White,
Color.Gray
};
var comboBox = sender as ComboBox;
comboBox.ItemsSource = colors;
comboBox.SelectedIndex = 1;
this.DataContext = colors;
}
尝试'列表'并用'Brushes.Blue'填充它等。除此之外,Rectange没有设置大小。 –
Clemens
@Clemens这样我只是得到字符串“System.Drawing.SolidBrush在我的默认选定的索引和所有其他选项都是空的” – Samuel
我的意思是WPF画笔,而不是WinForms画笔,即System.Windows.Media.Brushes。一般来说,你不应该在WPF应用程序中使用WinForms类。删除System.Drawing程序集引用。 – Clemens