2010-12-05 121 views
4

问候WPF - 动画用户控件

我目前在WPF中做一个应用程序,因为我对WPF相当陌生我遇到了一些困难。我搜索了我的问题,但没有取得很大的成功。这是目前的情况,下面主窗口的XAML:

<Grid Height="279" HorizontalAlignment="Left" Margin="166,0,0,0" Name="gridScoreboard" VerticalAlignment="Top" Width="808"> 
    <!--Scoreboard Image--> 
    <Image Source="pack://application:,,,/Images/Style/Scoreboard.png" Width="517" Height="91" HorizontalAlignment="Left" Margin="138,1,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" /> 

    <Canvas Name="canvasRacePlayer1" Width="14" Height="14" Canvas.Left="33" Canvas.Top="66" Background="Transparent" MouseLeftButtonDown="canvasRacePlayer1_MouseLeftButtonDown" Margin="171,70,623,195" /> 
    <local:ucRaces HorizontalAlignment="Center" Margin="93,62,632,187" Width="78" Visibility="Hidden" x:Name="ucRacesP1" Height="33" /> 
</Grid> 

用户控制是从开始(ucRaces)隐藏,一旦小画布(canvasRacePLayer1)被点击的用户控制将被显示。不过,我希望这个用户控件能够从某个点向右“滑动”。就好像它会以小步骤显现。我发现矩形和按钮的动画信息,但对用户控件没有成功。

预先感谢您

回答

3

如果您要为您的WPF项目创建动画,我建议您使用Expression Blend。您可以使用EB设计程序并使用Visual Studio实现它的功能。很难制作动画,编写XAML语法或C#代码。

您将如何使用EB为您的用户控件设置动画效果?那么,它其实很简单。您需要先打开现有的WPF项目。然后,转到文件 - >新建项目 - >用户控制,并创建用户控件。然后,如果要将其添加到项目中,请切换回当前在EB中打开的WPF项目,然后单击位于屏幕左侧工具栏上的右箭头(>>),然后转到Project - > [您的用户控制]。现在您已将它添加到您的项目中。

如果要为用户控件设置动画,您必须将StoryBoard添加到时间轴。当您在EB中的WPF项目中时,在对象和时间线下,单击加号(+)并添加一个新的StoryBoard。现在,您需要使用一个时间轴来动画用户控件。您可以在时间线上放置KeyTime属性,并定义用户控件应该从位置A到位置B的路径,以及如果希望用户控件逐渐变为可见,则还需要不透明度级别。

您可以添加一个用户控件并为第二个用户实现其逻辑。 Expression Blend会让你的生活更轻松。

0

动画您的UserControl不应该是从动画任何其他WPF对象很大的不同:您可以动画保证金(使用ThicknessAnimation),或删除您的用户控件成画布其拥有,然后动画您的用户控件的Canvas.Left属性。在后一种情况下,请注意将属性名称放在括号内:Storyboard.TargetProperty="(Canvas.Left)"

+0

你能提供C#代码吗? – 2011-11-18 11:22:08