我花了很长时间弄清楚如何在我的 WPF 窗口中更改情节提要的一个属性。
我的窗口有一个动画,它通过一种“卷起”动画来减小窗口的大小。根据某些条件(是否设置了某个道具),我们希望窗口更长一点以容纳额外的项目。
我一直在使用 this.FindResource() 来抓取元素,这没问题。但当然,Storyboard 被冻结了,其中包含的 DoubleAnimations 也被冻结了,所以我无法更改任何内容。
所以我想,好吧,我就换掉整个故事板。
<Trigger Property="IsMouseOver" Value="True">
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource ToolbarCollapse_NoIB}" />
</Trigger.ExitActions>
</Trigger>
我在想,以编程方式,我可以进入代码隐藏并将触发器更改为使用 ToolbarCollapse_YesIB。
在那次尝试中,我可以做到这一点:
var tbTemplate = (ControlTemplate)this.FindResource("ToolbarTemplate");
var newStoryboard = (Storyboard)this.FindResource("ToolbarCollapse_YesIB");
tbTemplate.Triggers[2].ExitActions[0] = ??? needs to be a TriggerAction
这就是我卡住的地方。如何为该情节提要创建 TriggerAction?构造函数并不真正适用于此,方法也不适用。
这些课程的文档让我认为我偏离了轨道。
任何人都可以帮助我使这种方法奏效,或者让我了解另一种效果更好的方法吗?