这是我的组合框(xaml代码):
<ComboBox SelectionChanged="ComboBox1_SelectionChanged" Name="ComboBox1" SelectedIndex="1" FontWeight="Bold" FontSize="15" Canvas.Left="133" Canvas.Top="240" Width="135" Height="24">
<ComboBoxItem Foreground="Red" Name="Red">Red</ComboBoxItem>
<ComboBoxItem Foreground="Blue" Name="Blue">Blue</ComboBoxItem>
<ComboBoxItem Foreground="Yellow" Name="Yellow">Yellow</ComboBoxItem>
<ComboBoxItem Foreground="Pink" Name="Pink">Pink</ComboBoxItem>
<ComboBoxItem Foreground="Green" Name="Green">Green</ComboBoxItem>
</ComboBox>
这是我的C#代码:
private void ComboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ComboBox1.Text != "")
{
var converter = new System.Windows.Media.BrushConverter();
var brush = (Brush)converter.ConvertFromString(ComboBox1.Text);
rect.Fill = brush;
}
}
我有一个矩形,我想填写在组合框中选择的颜色,我也希望在组合框的默认颜色是蓝色,但都不真正为我工作。默认情况下,组合框上的文本实际上是蓝色的,但我认为项目本身没有被选中,因为它不识别它,并告诉我我的组合框字符串默认为空。此外,我的矩形的颜色在一个延迟中变化,如果我先选择红色,什么也不会发生,然后如果我选择绿色,它会显示红色,并在该延迟中继续。
有人知道为什么吗?如何解决呢?我将不胜感激。
1条答案
按热度按时间epggiuax1#
最后,我设法通过使用DropDownClosed事件更改SelectionChanged事件来解决这个问题。