XAML WPF-组合框选择更改显示最后一个选定项而不是当前项

dojqjjoe  于 2023-05-27  发布在  其他
关注(0)|答案(1)|浏览(151)

这是我的组合框(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;
        }
    }

我有一个矩形,我想填写在组合框中选择的颜色,我也希望在组合框的默认颜色是蓝色,但都不真正为我工作。默认情况下,组合框上的文本实际上是蓝色的,但我认为项目本身没有被选中,因为它不识别它,并告诉我我的组合框字符串默认为空。此外,我的矩形的颜色在一个延迟中变化,如果我先选择红色,什么也不会发生,然后如果我选择绿色,它会显示红色,并在该延迟中继续。
有人知道为什么吗?如何解决呢?我将不胜感激。

epggiuax

epggiuax1#

最后,我设法通过使用DropDownClosed事件更改SelectionChanged事件来解决这个问题。

相关问题