WPFウィンドウでストーリーボードの1つのプロパティを変更する方法を理解するのに時間がかかっています。
私のウィンドウには、一種の「ロールアップ」アニメーションでウィンドウのサイズを縮小するアニメーションがあります。条件(特定のプロップが設定されているかどうか)によっては、追加のアイテムを収めるためにウィンドウを少し長くする必要があります。
this.FindResource()を使用して要素を取得してきましたが、問題ありません。ただし、もちろん、ストーリーボードはフリーズされており、それに含まれる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を作成するにはどうすればよいですか?コンストラクターは、これにもメソッドにも実際には役立ちません。
これらのクラスのドキュメントは、私が軌道に乗っていないことを私に思わせます。
誰かが私がこのアプローチを機能させるのを手伝ってくれるか、または私をよりうまく機能する別のアプローチに導くことができますか?