8,757
社区成员
发帖
与我相关
我的任务
分享<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="grid">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="-1"/>
<EasingDoubleKeyFrame KeyTime="0:0:2" Value="-1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>Storyboard keyFrameboard = new Storyboard();
DoubleAnimationUsingKeyFrames dakeyframe = new DoubleAnimationUsingKeyFrames();
Storyboard.SetTarget(dakeyframe, icCurrent);
Storyboard.SetTargetProperty(dakeyframe, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"));
dakeyframe.BeginTime = new TimeSpan(0, 0, 0);
EasingDoubleKeyFrame edKeyFrame = new EasingDoubleKeyFrame();
edKeyFrame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(1));
edKeyFrame.Value = -1;
dakeyframe.KeyFrames.Add(edKeyFrame);
keyFrameboard.Children.Add(dakeyframe);
keyFrameboard.Begin();
<Canvas x:Name="canvasBottom" Width="500" Height="500" Background="Gray" Grid.Row="1">
<my:ImageContainer x:Name="ic" Width="200" Height="200" >
<my:ImageContainer.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</my:ImageContainer.RenderTransform>
</my:ImageContainer>
</Canvas>
ImageContainer ic = new ImageContainer();
ic.Width = 150;
ic.Height = 150;
canvasBottom.Children.Add(ic);
icCurrent = ic;
ScaleTransform myScaleTransform = new ScaleTransform();
myScaleTransform.ScaleY = 1;
myScaleTransform.ScaleX = 1;
RotateTransform myRotateTransform = new RotateTransform();
myRotateTransform.Angle = 0;
TranslateTransform myTranslate = new TranslateTransform();
SkewTransform mySkew = new SkewTransform();
// Create a TransformGroup to contain the transforms
// and add the transforms to it.
TransformGroup myTransformGroup = new TransformGroup();
myTransformGroup.Children.Add(myScaleTransform);
myTransformGroup.Children.Add(myRotateTransform);
myTransformGroup.Children.Add(myTranslate);
myTransformGroup.Children.Add(mySkew);
icCurrent.RenderTransform = myTransformGroup;
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid x:Name="icCurrent" Margin="0,200,0,0" Background="Blue">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</TransformGroup>
</Grid.RenderTransform>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Storyboard keyFrameboard = new Storyboard();
DoubleAnimationUsingKeyFrames dakeyframe = new DoubleAnimationUsingKeyFrames();
Storyboard.SetTarget(dakeyframe, icCurrent);
Storyboard.SetTargetProperty(dakeyframe, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"));
dakeyframe.BeginTime = new TimeSpan(0, 0, 0);
EasingDoubleKeyFrame edKeyFrame = new EasingDoubleKeyFrame();
edKeyFrame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(1));
edKeyFrame.Value = -1;
dakeyframe.KeyFrames.Add(edKeyFrame);
keyFrameboard.Children.Add(dakeyframe);
keyFrameboard.Begin();
}
}
}
<Grid x:Name="icCurrent" Margin="0,200,0,0" Background="AliceBlue">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</TransformGroup>
</Grid.RenderTransform>
</Grid>