触发vs国家 [英] Trigger vs States

查看:41
本文介绍了触发vs国家的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我知道这个问题经常出现,但我没有找到任何明确的答案来解决它们之间的差异。有了触发器,我知道你可以展示一些"视觉效果"。当一个EVENT发生时:所以让我们说比如当用户点击
按钮发光按钮时,或者当他将指针放在按钮上时按钮改变其颜色。我可以使用States然后使用Behavior"GoToStateAction"做同样的事情。那有什么区别?

Hi guys, i know that's this question arises often, but i didn't found any clear answer to the differences between them. With triggers I know that you can show some "visual effect" when an EVENT happens: so let's say for example when the user click a button the button glows, or when he puts the pointer over it the button changes its color. The same thing I can do using the States and then the Behaviour "GoToStateAction". Then what's the difference?

P.S。我是WPF编程的新手,所以我上面提到的内容很可能是错误的!

P.S. I'm a newbie in WPF programming, so it's highly possible that the things i said above are wrong!!!

提前感谢您的回答

Paolo

 

 

 

推荐答案

史蒂夫在这里总结得很好:http://social.expression.microsoft.com/Forums/en/blend/thread/39913d0e-28db-4145- 87b3-29444ccfbe57

Steve sums it up really well here: http://social.expression.microsoft.com/Forums/en/blend/thread/39913d0e-28db-4145-87b3-29444ccfbe57

"使用WPF时,会对任何存在的触发器进行评估和操作。同时,WPF控件*正在*更改其* logical * VSM状态。因此,就像Silverlight扩展器那样,WPF 扩展器实际上相当于在不同的
时间进入其扩展/折叠状态。在VSM意义上,2个平台中的控件是等效的。如果你没有定义任何给定状态的* look *(我现在谈论的是视觉状态 它对逻辑状态响应
),它们是等同的,因为它们不同于然后,当控件进入相应的逻辑状态时,控件不会改变外观。如果你进入WPF扩展器并删除所有触发器,然后进入SL扩展器并删除所有可视状态中的所有
关键帧,那么你最终会有两个控件执行相同的操作 - 在运行时,它们'交替*逻辑*扩展/折叠但你没有看到任何证据,因为xaml中没有任何内容说这些视觉状态
与Base不同。

WPF默认控制模板 定义触发器,但它们不定义视觉状态。 SL默认控件模板定义可视状态(并且触发器不存在)。因此,要在WPF扩展器中使用状态,请删除触发器并按照SL扩展器的
定义状态的方式定义状态。你这样做的方法是选择Base,使expandsite可见(而不是折叠),给它零高度(或其他一些与布局相关的属性),选择Expanded  visual state并给它一些大小。
在ExpansionStates状态组中设置持续时间,启用Transition Preview,您可以预览平滑的打开和关闭,它将在运行时执行相同的操作。"

 


这篇关于触发vs国家的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆