【问题标题】:IF/ELSE condition: frequency of continuouslyIF/ELSE 条件:频率连续
【发布时间】:2012-11-19 18:19:36
【问题描述】:

我创建了一个 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;
}  

但在运行时我选择了绿色,颜色变为红色而不是绿色。

【问题讨论】:

  • 不应将此代码放在 click 事件中,而应放在 SelectedIndexChanged 事件中。

标签: c# wpf


【解决方案1】:

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

尝试使用(string)color.SelectedValue

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

您需要使用SelectionChanged 事件。

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

【讨论】:

  • 实际上我写了你的代码,例如 if((color.Text)color.SelectedValue) 我发现 SelectedValue not found
  • 使用SelectionChanged event - Click 不是正确的事件在
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 2011-11-06
  • 2020-09-15
  • 1970-01-01
相关资源
最近更新 更多