IF/ELSE 条件:连续的频率



我创建了一个 C#/WPF 应用程序,我想在运行时根据条件更改 WPF 表单的颜色 任务是,如果用户选择红色表单更改为红色,如果用户选择绿色表单颜色变为绿色

用户在组合框中选择颜色(红色、绿色),我在组合框中编写代码单击事件代码,例如

if ( color.Text== "green")
{
   SolidColorBrush bg = new SolidColorBrush(Colors.green);
   g.Background = bg;   //g is stack panel name 
}
else
{
   SolidColorBrush bg = new SolidColorBrush(Colors.red);
   g.Background = bg;
}  

但在运行时,我选择了绿色形式颜色更改为红色而不是绿色。

那是因为color.Text不等于"green"

尝试使用 (string)color.SelectedValue

哦 - @Fuex指出(尽管假设您在 Windows 窗体上,而实际上您在 WPF 上) - 您不使用 Click 事件 - 因为不会进行任何选择。

您需要使用 SelectionChanged 事件。

将逻辑移动到该处理程序后,还应该能够返回到使用.Text

最新更新