c# - WPF:触发动画 - 沿 Y 轴向下移动控件

标签 c# .net wpf xaml animation

我有一个控件,我想在 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/

相关文章:

wpf - 为什么要添加 x :Name attribute to a user control cause a compilation error?

c# - 初始化 ninject 时“序列不包含任何元素”异常

c# - 检查 if 语句中 null 的层次结构

c# - 为什么我不能将 Concat 或 Union 结果合并到一个空列表中?

c# - 如何在标题栏中显示带有下标或上标的文本?

wpf - 如何使 WPF DataGrid 显示具有绑定(bind)和 DataTemplate 的 ViewModel 集合

c# - 为什么我不能在 EF4 中的多对多实体上重写 GetHashCode?

asp.net - 获取连接失败。连接可能未正确配置或您可能没有此连接的正确权限

c# - 检查 AD 帐户是否在 Active Directory 中具有 "Logon on as a service"权限

c# - 自定义对象的值与 List<> 相等吗