首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF动画(同时改变单个元素的多个属性)

WPF动画(同时改变单个元素的多个属性)
EN

Stack Overflow用户
提问于 2014-06-26 14:03:54
回答 1查看 3.3K关注 0票数 1

我需要同时动画一个ui元素的多个属性。

例如,同步减少窗口的宽度和高度。

有什么想法吗?

代码语言:javascript
复制
        DoubleAnimation widthAnimation = new DoubleAnimation
        {           
            To = 0,
            Duration = TimeSpan.FromSeconds(5)
        };

        DoubleAnimation heightAnimation = new DoubleAnimation
        {
            To = 0,
            Duration = TimeSpan.FromSeconds(5)
        };

        Storyboard.SetTargetProperty(widthAnimation, new PropertyPath(Window.WidthProperty));
        Storyboard.SetTarget(widthAnimation, this);

        Storyboard.SetTargetProperty(heightAnimation, new PropertyPath(Window.HeightProperty));
        Storyboard.SetTarget(heightAnimation, this);

        Storyboard s = new Storyboard();
        s.Completed += FadeOut_Completed;
        s.Children.Add(widthAnimation);
        s.Children.Add(heightAnimation);
        this.BeginStoryboard(s, HandoffBehavior.SnapshotAndReplace, true);    

它将一步一步地做动画;在宽度变化完成后,高度会发生变化!:

EN

Stack Overflow用户

回答已采纳

发布于 2014-06-28 13:03:43

在查看了您的代码之后,我了解到您正试图模拟Window的宽度和高度。

但是我很遗憾地告诉您,因为窗口不是一个实际的wpf组件,而是一个平台组件。然而,窗口的内容是完全可控的,通过您的代码预期,但窗口不是。任何此类更改都是通过Pinvoke路由的。而你所面临的问题是一个已知的问题,而且周围的工作也有点复杂。

有一个解决方案是这样的,它使用pinvoke来动画窗口的高度和宽度。

Animating a WPF window width and height

下面是在microsoft创建的类似问题的一个bug,结果是(关闭的,不会修复)

https://connect.microsoft.com/VisualStudio/feedback/details/715415/window-width-height-animation-in-wpf-got-broken-on-net-framework-4-0

额外

下面是一个示例,它并没有真正解决您的问题,但将帮助您减少您需要的行数,您需要为其他元素执行这样的动画。它是用较少的行重写代码。

代码语言:javascript
复制
        DoubleAnimation anim = new DoubleAnimation
        {
            To = 0,
            Duration = TimeSpan.FromSeconds(5)
        };

        border.BeginAnimation(Border.HeightProperty, anim);
        border.BeginAnimation(Border.WidthProperty, anim);

尝试使用除窗口之外的任何元素的代码,我使用了填充了颜色的边框。

很抱歉一见钟情地忽略了代码中的Window

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24432669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档