【问题标题】:How to add more than one event for button click within a single event handler in Expression Blend?如何在 Expression Blend 中的单个事件处理程序中为按钮单击添加多个事件?
【发布时间】:2015-04-13 08:50:18
【问题描述】:

我有一个按钮和一个椭圆,我需要在连续三次单击时更改同一个椭圆的填充颜色,例如第一次单击 - 填充颜色为红色,第二次单击 - 黄色和第三次单击 - 绿色。 如何使用单个事件处理程序来单击按钮?

【问题讨论】:

  • 使用私有字段并在事件处理程序中检查其值是否为 3?!

标签: c# wpf xaml blend


【解决方案1】:

根据您的应用程序的大小,您可以通过多种方式来实现。如果它很重要,请阅读状态模式并在每次单击时更改状态。

或者如果它很小,你可以做这样的事情..(请把它当作伪代码)

private string _lastState = "DefaultState" 

public void MyClickHandler()
{
    ChangeState();
}

private void ChangeState()
{
Switch (_lastState)
case "Default": _lastState = "Red";
            _myControl.Backgroung = Red; 
case "Red": _lastState = "Yellow";
            _myControl.Backgroung = Yellow;
case "Yellow": _lastState = "Green";
            _myControl.Backgroung = Green;


.. and so on..

}

where _myControl is your state .. may be just a string variable..

}

【讨论】:

  • 嗨!谢谢回复。但我有一个疑问。如何在事件第一次发生时为字符串变量 _lastState 提供初始值。因为如果我在事件处理函数里面给_lastState指定一个值,那么每次点击事件发生时,_lastState都会被设置成这个值,在switch里面遇到同样的情况。
  • 初始值可以是您的默认颜色...如果未知,请声明 _lastState = "default" 并有一个案例来处理默认状态。将其视为另一种状态。
  • 好的,知道了!非常感谢! :-) :-)
猜你喜欢
  • 2012-08-29
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多