【问题标题】:Animate a window, sliding from right to left or from bottom to top动画窗口,从右到左或从下到上滑动
【发布时间】:2013-12-05 06:10:36
【问题描述】:

我正在尝试为窗口实现动画,使其充当从右到左或从底部到顶部的滑动。 我试过DoubleAnimation,它适用于从左到右或从上到下的情况。 这是我尝试过的:

myWindow.Show();
DoubleAnimation myAnimation = new DoubleAnimation();
myAnimation.From = 0;
myAnimation.To = myWindow.ActualWidth;
myAnimation.SpeedRatio = 5;
myWindow.BeginAnimation(System.Windows.Window.WidthProperty, myAnimation);

如果我将myWindow.ActualWidth替换为myWindow.ActualHeight,并将WidthProperty替换为HeightProperty,我将得到从上到下的动画幻灯片。

您是否知道任何类似且简单的方法来为窗口设置动画但从右向左滑动? myWindow.LeftmyWindow.Top 已经设置好了。 非常感谢您提前提供的帮助。我真的很感激。

【问题讨论】:

    标签: c# animation


    【解决方案1】:

    只需恢复 from 和 to 值:

    myAnimation.From = myWindow.ActualWidth;
    myAnimation.To = 0;
    

    看起来很明显...

    编辑:

    你设置了错误的属性,试试这个:

    myWindow.BeginAnimation(System.Windows.Window.LeftProperty, myAnimation);
    

    【讨论】:

    • 非常感谢您的回复。不过,很抱歉,不是这样的。我期待从右到左,但最终宽度是 myWindow.ActualWidth 而不是 0。在发布问题之前我已经尝试过了。但结果不是我想要的。还是谢谢。
    • 感谢@HighCore。我可能不够清楚。实际上,代码中的 myWindow 是一个名为 myOwnerWindow 的窗口的子窗口。我需要设置 myWindow.Left = myOwnerWindow.Left + someValue。 someValue 由其他用户设置。我尝试了不同的 myAnimation.From 和 myAnimation.To,但是,它们都不是我所期望的。我第一次打开子窗口时它正在工作。然而,我第二次打开它时,它却不知从何而来。有没有可能我没有关闭动画?我是否需要每次都检查动画是否为空?
    • @payson 发布您的完整代码,请具体说明您当前的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-07-06
    • 2021-07-05
    • 1970-01-01
    • 2011-10-02
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多