视觉混合动画图像背景
Visual Blend Annimating Image Background
如果用户启动应用程序,应该有一个动画背景。 Maingrid 的背景就是上面那张图片。应该移动背景。我如何在 Visual Blend 中执行此操作?我知道如何在混合中创建动画,但我不知道如何制作这种动画。
如果不从根本上修改您展示的图片,您要求做的事情(据我所知)是不可能的。
从它的声音来看,您想要做的是在这个 static 二维图像中为手设置动画。如果将此静态图像打印到 sheet 纸上并尝试同样的操作,您将无法再移动此静态图像时钟上的指针。
一种解决方案是使用图像编辑工具(如 photoshop)擦除有问题的指针,留下一个空白的钟面。
从那里您可以按照您的意愿将其用作背景,但在现在修改后的图像上方的图层上创建资产,以复制旧时钟指针过去的样子并为它们制作动画它们相应地。
(例如;制作 3 个独立的动画,每只手旋转 360 度,只有二手的动画需要 60 秒才能完成,分针需要1 小时完成,当然时针需要 12 小时完成旋转(但你说你能胜任动画,所以我会把这部分留给你。)
我相信您正在寻找与此类似的东西:
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<!-- The PointAnimation has a name so it can be accessed
from code. The To property is left out of the XAML
because the value of To is determined in code. -->
<PointAnimation
x:Name="clockAnimation"
Storyboard.TargetProperty="Center"
Storyboard.TargetName="clockImage"
Duration="0:0:20"/>
</Storyboard>
</Canvas.Resources>
而这个 C# 可以在定时器或初始化时完成:
double newX = 'Where you want the new X coordinate of the clock';
double newY = 'Where you want the new Y coordinate of the clock';
Point myPoint = new Point();
myPoint.X = newX;
myPoint.Y = newY;
clockAnimation.To = myPoint;
myStoryboard.Begin();
希望这对你有用!
如果用户启动应用程序,应该有一个动画背景。 Maingrid 的背景就是上面那张图片。应该移动背景。我如何在 Visual Blend 中执行此操作?我知道如何在混合中创建动画,但我不知道如何制作这种动画。
如果不从根本上修改您展示的图片,您要求做的事情(据我所知)是不可能的。
从它的声音来看,您想要做的是在这个 static 二维图像中为手设置动画。如果将此静态图像打印到 sheet 纸上并尝试同样的操作,您将无法再移动此静态图像时钟上的指针。
一种解决方案是使用图像编辑工具(如 photoshop)擦除有问题的指针,留下一个空白的钟面。 从那里您可以按照您的意愿将其用作背景,但在现在修改后的图像上方的图层上创建资产,以复制旧时钟指针过去的样子并为它们制作动画它们相应地。
(例如;制作 3 个独立的动画,每只手旋转 360 度,只有二手的动画需要 60 秒才能完成,分针需要1 小时完成,当然时针需要 12 小时完成旋转(但你说你能胜任动画,所以我会把这部分留给你。)
我相信您正在寻找与此类似的东西:
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<!-- The PointAnimation has a name so it can be accessed
from code. The To property is left out of the XAML
because the value of To is determined in code. -->
<PointAnimation
x:Name="clockAnimation"
Storyboard.TargetProperty="Center"
Storyboard.TargetName="clockImage"
Duration="0:0:20"/>
</Storyboard>
</Canvas.Resources>
而这个 C# 可以在定时器或初始化时完成:
double newX = 'Where you want the new X coordinate of the clock';
double newY = 'Where you want the new Y coordinate of the clock';
Point myPoint = new Point();
myPoint.X = newX;
myPoint.Y = newY;
clockAnimation.To = myPoint;
myStoryboard.Begin();
希望这对你有用!