【问题标题】:correct way to animate objects in wpf and c#在 wpf 和 c# 中为对象设置动画的正确方法
【发布时间】:2015-11-20 19:43:38
【问题描述】:

我想用WPF 创建一个动画,但我不知道正确的方法。动画应该是异步的。动画应该是一个增长(高度)的矩形

。像这样的画布对象是一个不错的选择吗?

也许你们中的某个人可以给我一个有用的链接。我不想要任何代码 sn-ps。

【问题讨论】:

  • 你的意思是放大了,还是你已经有了想要放入的图片?
  • @IanH。它应该是一个单色矩形(矩形内没有任何东西)。这个矩形应该在高度上增长。
  • 方法有很多,所以很难有人告诉你正确的方法。您需要向我们详细提供您的场景规格,以便我们做出判断;否则,这是一个基于意见的电话。

标签: c# wpf animation wpf-animation


【解决方案1】:

链接:

  1. Animation Overview : MSDN

  2. Animation How-To : MSDN

在您的情况下,问题是“高度向下增长或同时向上/向下(50%)”。让 Rectangle 只向上增长几乎没有什么小挑战。

  1. 如何为 Canvas.Top 等附加属性设置动画。 (方法一)

  2. 如何为比例变换设置动画。 (方法二)

Animating Attached-Property

Animating Transforms

我正在使用 Canvas 发布工作代码(方法 1)。

<Canvas Margin="482,125,206,10" Background="MediumSeaGreen">
    <Rectangle x:Name="Rect" Fill="#FF030315"  Height="100"  Stroke="Black" Width="42" Canvas.Top="222">
        <Rectangle.Triggers>
            <EventTrigger RoutedEvent="MouseEnter">
                <EventTrigger.Actions>
                    <BeginStoryboard x:Name="Sb">
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" Storyboard.TargetName="Rect" By="-100" Duration="0:0:5"/>
                            <DoubleAnimation Storyboard.TargetProperty="Height" Storyboard.TargetName="Rect" By="100" Duration="0:0:5"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>
            <EventTrigger RoutedEvent="MouseLeave">
                <EventTrigger.Actions>
                    <PauseStoryboard BeginStoryboardName="Sb" />
                </EventTrigger.Actions>
            </EventTrigger>

        </Rectangle.Triggers>
    </Rectangle>
</Canvas>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2014-12-27
    相关资源
    最近更新 更多