windows-phone-7 – 如何使用动画在winRT中绘制圆弧?
我是WinRT和Blend的新手,我需要在我的WinRT应用程序中绘制数字1,2等绘图效果.要求就像应用程序将绘制数字.
任何帮助将非常感激. 提前致谢.
我认为你需要拼凑几个故事板来实现这一点,我真的建议你使用Blend!
打开一个空白项目,在对象和时间线下有一个加号,点击它并添加一个新的故事板.将故事板线的黄色条向前移动几毫秒.绘制一段动画,单击开始录制并稍微移动该部分.停止录音.继续这样做,直到你有你想要的. 这是一条跟随曲线的路径的快速演示,我做得非常快,所以它远离完美,但它是为了展示开始和停止以及它们如何一起看: <Page x:Class="App10.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App10" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" FontFamily="Global User Interface"> <Page.Resources> <Storyboard x:Name="StoryboardA"> <PointAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetProperty="(Path.Data).(PathGeometry.Figures)[0].(PathFigure.StartPoint)" Storyboard.TargetName="path"> <EasingPointKeyFrame KeyTime="0:0:0.3" Value="107.647,394.591"/> <EasingPointKeyFrame KeyTime="0:0:0.6" Value="147.75,352.713"/> <EasingPointKeyFrame KeyTime="0:0:0.9" Value="197.45,311.391"/> <EasingPointKeyFrame KeyTime="0:0:1.2" Value="268.45,251.392"/> <EasingPointKeyFrame KeyTime="0:0:1.4" Value="346.45,196.392"/> <EasingPointKeyFrame KeyTime="0:0:1.6" Value="417.45,151.392"/> <EasingPointKeyFrame KeyTime="0:0:1.8" Value="503.841,99.7321"/> <EasingPointKeyFrame KeyTime="0:0:2" Value="604.45,53.3924"/> <EasingPointKeyFrame KeyTime="0:0:2.3" Value="705.45,13.392"/> </PointAnimationUsingKeyFrames> <PointAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetProperty="(Path.Data).(PathGeometry.Figures)[0].(PathFigure.Segments)[0].(LineSegment.Point)" Storyboard.TargetName="path"> <EasingPointKeyFrame KeyTime="0:0:0.3" Value="55.8129,445.539"/> <EasingPointKeyFrame KeyTime="0:0:0.6" Value="95.9156,403.661"/> <EasingPointKeyFrame KeyTime="0:0:0.9" Value="139.796,364.539"/> <EasingPointKeyFrame KeyTime="0:0:1.2" Value="198.646,311.319"/> <EasingPointKeyFrame KeyTime="0:0:1.4" Value="266.536,258.09"/> <EasingPointKeyFrame KeyTime="0:0:1.6" Value="330.282,210.352"/> <EasingPointKeyFrame KeyTime="0:0:1.8" Value="408.248,157.542"/> <EasingPointKeyFrame KeyTime="0:0:2" Value="500.776,106.108"/> <EasingPointKeyFrame KeyTime="0:0:2.3" Value="597.831,60.216"/> </PointAnimationUsingKeyFrames> </Storyboard> </Page.Resources> <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Path Data="M73.5,639.5 C73.5,639.5 539.5,33.5 1289.5,79.5 L1535,101.5" HorizontalAlignment="Left" Height="572.492" Margin="68.5,72.008,-174,0" Stretch="Fill" Stroke="Red" StrokeThickness="10" UseLayoutRounding="False" VerticalAlignment="Top" Width="1471.5"/> <Path x:Name="path" HorizontalAlignment="Left" Height="507.972" Margin="66.05,137.358,0" Stroke="#FFFFE100" StrokeThickness="15" UseLayoutRounding="False" VerticalAlignment="Top" Width="712.95"> <Path.Data> <PathGeometry> <PathFigure StartPoint="53.45,448.392"> <LineSegment Point="7.50001,500.472"/> </PathFigure> </PathGeometry> </Path.Data> </Path> </Grid> 这是一个它看起来如何的图像,它是移动的黄色物体 – 弯曲的运动只是一个例子,表明你可以拼凑起来创造你想要的任何运动.称为缓动功能的东西甚至可以为你做这个,见下图. 这里有可用的缓动功能,可以与它们一起使用,结合故事板中的项目来创建所需的效果. The different easing functions are well explained here on MSDN 上面的示例中没有双动画,但它们看起来像这样: <Storyboard x:Name="myStoryboard"> <DoubleAnimation Duration="0:0:1" Storyboard.TargetName="myImage" Storyboard.TargetProperty="Opacity" From="0" To="1" /> </Storyboard> 这是一项很重要的工作,需要时间.我会建议你坐下来学习如何使用Blend并在使用之前使用故事板.那里有许多很棒的教程,值得花时间.就个人而言,我倾向于让设计师帮助制作动画,正如您在上面的故事板中看到的那样,我不是动画的专业人士 – 有很多要记住,特别是在应用程序性能方面. 我还想指出现代用户界面背后的一些主要思想,即Windows应用商店应用程序所需的设计语言,那就是保持真实的数字化.该应用程序不应该模仿现实生活中的东西,没有任何意义,因为它是一个应用程序,而不是“现实”. 来自MSDN: 视频值得一看:http://channel9.msdn.com/Events/Ch9Live/Channel-9-Live-at-Tech-Ed-Europe-2012/Panel-Modern-UI-Development 所以考虑一下,也许你不需要绘图动作.也许只是快速淡入,如下: <Page x:Class="App10.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App10" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" FontFamily="Global User Interface"> <Page.Resources> <Storyboard x:Name="StoryboardB"> <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="textBlock"> <EasingDoubleKeyFrame KeyTime="0" Value="0"/> <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </Page.Resources> <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <TextBlock x:Name="textBlock" HorizontalAlignment="Left" Height="145" Margin="465,386,0" TextWrapping="Wrap" Text="AB" VerticalAlignment="Top" FontSize="50" Width="343"/> </Grid> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008 – 如何在Windows Server 2008中强化T
- Wix卸载时不删除文件
- Windows 2008 R2 – 内核(系统进程PID = 4)正在锁定文件和文
- windows – 用于监视App池内存使用情况的免费应用程序或脚本
- 如何卸载symantec
- windows环境设置mysql自动备份(测试成功)
- winforms – Windows窗体应用程序转换为.Net Framework 4.0
- windows-server-2008 – 我可以从Linux节点在Windows DHCP服
- windows-7 – 你能识别我的localhost:8000上运行的是哪个W
- windows – 计算机启动/启动时的事件日志时间