C# 组合框selectedIndex出现问题

C# 组合框selectedIndex出现问题,c#,wpf,combobox,C#,Wpf,Combobox,好的,用户从子窗口的组合框中选择一些内容,按下按钮,在主窗口画布中填充颜色。这就是问题所在,但如果用户也按“X”,也会发生同样的情况。我想让计算机看到“X”和我为此创建的按钮之间的区别 Questionnaire q = new Questionnaire(); q.ShowDialog(); var color = q.comboBox1.SelectedIndex; switch (color) {

好的,用户从子窗口的组合框中选择一些内容,按下按钮,在主窗口画布中填充颜色。这就是问题所在,但如果用户也按“X”,也会发生同样的情况。我想让计算机看到“X”和我为此创建的按钮之间的区别

Questionnaire q = new Questionnaire();
        q.ShowDialog();


        var color = q.comboBox1.SelectedIndex;
        switch (color)
        {
            case 0:
                Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 0, 128, 0));
                break;
            case 1:
                Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 128, 128, 128));
                break;
            case 2:
                Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 211, 211, 211));
                break;
            case 3:
                Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 255, 127, 80));
                break;
            case 4:
                Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 128, 128, 0));
                break;
            case 5:
                Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 255, 222, 173));
                break;

此代码写在MainWindowButton\u ClickEvent中,该事件打开子窗口。我也尝试过使用Window\u Closed和Window\u Closed来解决问题,方法是将SelectedIndex设置为-1,但它所做的一切都是返回-1,并且无论按下哪个按钮,都不会填充画布。我还尝试将DialogResult设置为false。这一切都不起作用。

在按钮单击事件处理程序中关闭调查问卷窗口之前,请尝试设置该窗口的DialogResult属性:

private void CloseButton_Click(object sender, RoutedEventArgs e)
{
    DialogResult = true;
    Close();
}
然后,您可以检查DialogResult方法返回的值,以确定是否单击了按钮:

Questionnaire q = new Questionnaire();
bool? result = q.ShowDialog();

if(result.HasValue && result.Value)
{
    //button was clicked
    var color = q.comboBox1.SelectedIndex;
    switch (color)
    ...
}

但问题是关闭按钮不是我定制的,而是每个wpf窗口标题中的X按钮。如果我能访问iti,我就在主窗口按钮中实现了这一点,这样它就可以工作了!谢谢我指的是另一个按钮的点击事件,即不是“X”按钮。