我正在尝试修改复选框动画,因为我正在使用自定义样式的复选标记。众所周知,正常复选框默认关联4个TRectAnimations以满足IsMouseOver和IsChecked触发器的所有组合。我试过那些无济于事。
因此,为了理解动画的工作原理,我将动画缩小为仅适用于IsChecked触发器及其反转的动画。在样式设计器中为动画设置了以下非默认设置: -
Duration := 1
Enabled := True
PropertyName := SourceRect
Start
Bottom := 0
Left := 0
Right := 0
Top := 0
Stop
Bottom := 46
Left := 0
Right := 46
Top := 0
Trigger := IsChecked=true
TriggerInverse := IsChecked=false
我现在面临以下奇怪之处: -
当我手动操作对象检查器中复选框的IsChecked字段时,复选标记出现并正确消失但是当应用程序运行时,复选标记仍然存在,并且重复点击后不会发生任何活动(事件虽然被解雇了。
如果我尝试手动将TSubIImage的SourceRect字段设置为0,它将永远不会被保存并恢复为之前的值。
动画的“持续时间”字段的行为也是如此。它每次都会恢复到1E-5。
请帮我正确地执行此操作,我只想让标记动画并在复选框的IsChecked字段更改时显示/消失。
原来,SourceRect字段重置是由超出范围的值引起的。它不会出错......
持续时间字段具有相同的错误,但有时在设置为0.2时不会重置。
动画从控件继承触发器,但它们仅在最新父布局/面板覆盖的区域中捕获。它们也不会被捕获在对象后面,动画就是孩子了。通过将触发器更改为IsMouseOver并观察样式设计器中的反应来检查它。