如何在 Expression Blend 中的单个事件处理程序中为按钮单击添加多个事件?

Posted

技术标签:

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

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

【问题讨论】:

使用私有字段并在事件处理程序中检查其值是否为 3?! 【参考方案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" 并有一个案例来处理默认状态。将其视为另一种状态。 好的,知道了!非常感谢! :-) :-)

以上是关于如何在 Expression Blend 中的单个事件处理程序中为按钮单击添加多个事件?的主要内容,如果未能解决你的问题,请参考以下文章

Expression Blend 4 中的触发器面板在哪里?

如何在 Expression Blend 中将控件类型从按钮更改为切换按钮?

零元学Expression Blend 4 - Chapter 19 如何让做好的Blend专案变Silverlight网页

Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template

如何使用 Expression Blend 在 WPF 中编辑 DatePicker 的水印

如何修复无法加载的 Expression Blend 包?