我有一个控件,我想在 MouseOver
上向下移动。不幸的是,当我将鼠标悬停在上面时,动画不会运行,但背景颜色会改变。
Toolkit:Dialog
是继承ContentControl
的自定义对话框控件。另外,在最终实现中我不会使用 MouseOver - 目前只是为了便于测试。
<Style x:Key="blah" TargetType="Toolkit:Dialog">
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Toolkit:CanvasControl.Background" Value="White" />
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" From="0" To="100" Duration="00:00:01.000" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style>
最佳答案
我认为您必须向 RenderTransform 提供一个空的 TranslateTransform
,因为通常 RenderTransform
中没有任何内容。所以你正在尝试为不存在的东西制作动画。只需添加 TranslateTransform
并查看是否有效:
<Style x:Key="blah" TargetType="Toolkit:Dialog">
<Setter Property="RenderTransform">
<Setter.Value>
<TranslateTransform/>
</Setter.Value>
</Setter>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Toolkit:CanvasControl.Background" Value="White" />
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" From="0" To="100" Duration="00:00:01.000" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style>
关于c# - WPF:触发动画 - 沿 Y 轴向下移动控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927542/