カスタム依存関係プロパティをホストするヘルパー クラスを作成しました。やや複雑で、レイアウトをかなり頻繁に更新するカスタム UserControl オブジェクトを作成しました。添付プロパティの 1 つが値を変更したときにアニメーションをトリガーしたいと思います。
DP をホストするヘルパー クラスの例を次に示します。
namespace testProject
{
public class MenuHelper : DependencyObject
{
public static readonly DependencyProperty IsMenuReversedProperty = DependencyProperty.RegisterAttached(
"IsMenuReversed",
typeof(Boolean),
typeof(MenuHelper),
new PropertyMetadata(false));
}
}
DP を参照する方法の例を次に示します。
<UserControl.Triggers>
<Trigger Property="testProject:MenuHelper.IsMenuReversed" Value="True">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="Bouncy_Bar" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)" To="-1" Duration="0:0:.002"/>
</Storyboard>
</BeginStoryboard>
</Trigger>
<Trigger Property="testProject:MenuHelper.IsMenuReversed" Value="False">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="Bouncy_Bar" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)" To="1" Duration="0:0:.002"/>
</Storyboard>
</BeginStoryboard>
</Trigger>
</UserControl.Triggers>
トリガー コレクションにはイベント トリガーしか格納できないため、上記のコードを実行できないことに気付きました。それは私の質問に私をもたらします:
この問題の適切な解決策は何ですか?
IsMenuReversed の変更を通知するために RoutedEvent を作成しようとしましたが、xaml で DP の現在の値を確認できないことに気付きました (私の知る限り)。