我创建了一个帮助类来托管自定义依赖属性。我创建了一个有点复杂的自定义 UserControl 对象,并且经常更新它的布局。我想在附加属性之一更改其值时触发动画。
这是托管 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>
我意识到我不能执行上述代码,因为触发器集合只能容纳事件触发器。这让我想到了我的问题:
这个问题的适当解决方案是什么?
我试图制作一个 RoutedEvent 来通知我 IsMenuReversed 的更改,但后来意识到我无法检查 xaml 中 DP 的当前值(据我所知)。