问题描述
我的问题在下面,其它可以改进的地方也请大家不吝赐教,新手不太懂啊XAML代码:Windowx:Class="WpfApplication4.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="动画演示"Height="350"Width="525"><GridBackground="White"><TabControlHorizontalAlignment="Left"Height="100"Margin="27,196,0,0"VerticalAlignment="Top"Width="464"SelectionChanged="TabControl_SelectionChanged"><TabItemHeader="图形"RenderTransformOrigin="2.37,0.493"IsSelected="True"><GridBackground="#00000000"><TextBlockHorizontalAlignment="Left"Height="22"Margin="10,6,0,0"TextWrapping="Wrap"Text="形状:"VerticalAlignment="Top"Width="42"/><ComboBoxx:Name="shape"HorizontalAlignment="Left"Margin="57,6,0,0"VerticalAlignment="Top"Width="120"RenderTransformOrigin="0.517,0.091"SelectionChanged="shape_SelectionChanged"><ComboBoxItemContent="正方形"/><ComboBoxItemContent="圆形"/></ComboBox><TextBlockHorizontalAlignment="Left"Margin="10,36,0,0"TextWrapping="Wrap"Text="颜色:"VerticalAlignment="Top"Height="22"/><ComboBoxx:Name="color"HorizontalAlignment="Left"Margin="57,36,0,0"VerticalAlignment="Top"Width="120"SelectionChanged="color_SelectionChanged"><ComboBoxItemContent="红色"/><ComboBoxItemContent="黄色"/><ComboBoxItemContent="蓝色"/></ComboBox></Grid></TabItem><TabItemHeader="变换"><GridBackground="#00000000"><TextBlockHorizontalAlignment="Left"Margin="10,10,0,0"TextWrapping="Wrap"VerticalAlignment="Top"Text="缩放:"Height="20"/><TextBlockHorizontalAlignment="Left"Margin="10,42,0,0"TextWrapping="Wrap"Text="旋转:"VerticalAlignment="Top"/><TextBlockHorizontalAlignment="Left"Margin="206,42,0,0"TextWrapping="Wrap"VerticalAlignment="Top"Text="(顺时针方向)"/><TextBlockHorizontalAlignment="Left"Margin="249,10,0,0"TextWrapping="Wrap"Text="倾斜:"VerticalAlignment="Top"RenderTransformOrigin="1.741,0.875"/><Sliderx:Name="Slider1"HorizontalAlignment="Left"Margin="52,8,0,0"VerticalAlignment="Top"Width="149"Maximum="2"TickFrequency="0.1"TickPlacement="BottomRight"Value="1"/><Sliderx:Name="Slider2"HorizontalAlignment="Left"Margin="52,42,0,0"VerticalAlignment="Top"RenderTransformOrigin="-1.333,-1.6"Width="149"Minimum="-360"Maximum="360"TickPlacement="BottomRight"TickFrequency="10"/><Sliderx:Name="Slider3"HorizontalAlignment="Left"Margin="290,10,0,0"VerticalAlignment="Top"Width="139"Maximum="89"TickFrequency="5"TickPlacement="BottomRight"Minimum="-89"/><ButtonContent="重置"HorizontalAlignment="Left"Margin="354,42,0,0"VerticalAlignment="Top"Width="75"Visibility="Collapsed"/></Grid></TabItem><TabItemHeader="运动"><GridBackground="#00000000"><TextBlockHorizontalAlignment="Left"Margin="10,10,0,0"TextWrapping="Wrap"Text="方式:"VerticalAlignment="Top"/><ComboBoxHorizontalAlignment="Left"Margin="51,10,0,0"VerticalAlignment="Top"Width="120"SelectionChanged="ComboBox_SelectionChanged"><ComboBoxItemContent="弹跳"/></ComboBox><Sliderx:Name="slider4"IsSnapToTickEnabled="True"HorizontalAlignment="Left"Margin="293,10,0,0"VerticalAlignment="Top"RenderTransformOrigin="-4.917,0.5"Width="129"TickPlacement="BottomRight"Maximum="5"TickFrequency="0.5"SmallChange="1"Minimum="1"/><TextBlockHorizontalAlignment="Left"Margin="250,10,0,0"TextWrapping="Wrap"Text="速度:"VerticalAlignment="Top"/><TextBlockText="{BindingElementName=slider4,Path=Minimum}"HorizontalAlignment="Left"Margin="293,32,0,0"TextWrapping="Wrap"VerticalAlignment="Top"RenderTransformOrigin="-0.036,-0.688"/><TextBlockText="{BindingElementName=slider4,Path=Value}"HorizontalAlignment="Left"Margin="355,32,0,0"TextWrapping="Wrap"VerticalAlignment="Top"/><TextBlockText="{BindingElementName=slider4,Path=Maximum}"HorizontalAlignment="Left"Margin="415,32,0,0"TextWrapping="Wrap"VerticalAlignment="Top"/></Grid></TabItem></TabControl><CanvasHorizontalAlignment="Left"Height="181"Margin="27,10,0,0"VerticalAlignment="Top"Width="464"Background="#FF7AF9FF"Opacity="0.5"><Rectanglex:Name="square"Fill="White"Height="88"Canvas.Left="188"Canvas.Top="46.5"Width="88"Visibility="Collapsed"><Rectangle.RenderTransform><TransformGroup><ScaleTransformScaleX="{BindingElementName=Slider1,Path=Value,Mode=OneWay}"ScaleY="{BindingElementName=Slider1,Path=Value,Mode=OneWay}"/><SkewTransformAngleX="{BindingElementName=Slider3,Path=Value,Mode=OneWay}"/><RotateTransformAngle="{BindingElementName=Slider2,Path=Value,Mode=OneWay}"/><TranslateTransformx:Name="square1"/></TransformGroup></Rectangle.RenderTransform></Rectangle><Ellipsex:Name="circle"Fill="White"Height="88"Canvas.Left="188"Canvas.Top="46.5"Width="88"RenderTransformOrigin="0.5,0.5"Visibility="Collapsed"><Ellipse.RenderTransform><TransformGroup><ScaleTransformScaleX="{BindingElementName=Slider1,Path=Value,Mode=OneWay}"ScaleY="{BindingElementName=Slider1,Path=Value,Mode=OneWay}"/><SkewTransformAngleX="{BindingElementName=Slider3,Path=Value,Mode=OneWay}"/><RotateTransformAngle="{BindingElementName=Slider2,Path=Value,Mode=OneWay}"/><TranslateTransformx:Name="circle1"/></TransformGroup></Ellipse.RenderTransform></Ellipse></Canvas></Grid></Window>
解决方案
本帖最后由 zytbbkk 于 2015-04-27 23:03:36 编辑
解决方案二:
C#代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSystem.Windows.Media;usingSystem.Windows.Media.Imaging;usingSystem.Windows.Navigation;usingSystem.Windows.Shapes;usingSystem.Windows.Media.Animation;namespaceWpfApplication4{///<summary>///MainWindow.xaml的交互逻辑///</summary>publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}privatevoidTabControl_SelectionChanged(objectsender,SelectionChangedEventArgse){if(e.SourceisTabControl){}}privatevoidshape_SelectionChanged(objectsender,SelectionChangedEventArgse){stringshape=null;foreach(ComboBoxItemitemine.AddedItems){shape=item.Content.ToString();break;}switch(shape){case"正方形":square.Visibility=System.Windows.Visibility.Visible;circle.Visibility=System.Windows.Visibility.Collapsed;break;case"长方形":square.Visibility=System.Windows.Visibility.Collapsed;circle.Visibility=System.Windows.Visibility.Collapsed;break;case"圆形":square.Visibility=System.Windows.Visibility.Collapsed;circle.Visibility=System.Windows.Visibility.Visible;break;}}privatevoidcolor_SelectionChanged(objectsender,SelectionChangedEventArgse){stringcolor=null;foreach(ComboBoxItemitemine.AddedItems){color=item.Content.ToString();break;}switch(color){case"白色":square.Fill=newSolidColorBrush(Colors.White);circle.Fill=newSolidColorBrush(Colors.White);break;case"黑色":square.Fill=newSolidColorBrush(Colors.Black);circle.Fill=newSolidColorBrush(Colors.Black);break;case"红色":square.Fill=newSolidColorBrush(Colors.Red);circle.Fill=newSolidColorBrush(Colors.Red);break;case"黄色":square.Fill=newSolidColorBrush(Colors.Yellow);circle.Fill=newSolidColorBrush(Colors.Yellow);break;case"蓝色":square.Fill=newSolidColorBrush(Colors.Blue);circle.Fill=newSolidColorBrush(Colors.Blue);break;case"绿色":square.Fill=newSolidColorBrush(Colors.Green);circle.Fill=newSolidColorBrush(Colors.Green);break;}}privatevoidComboBox_SelectionChanged(objectsender,SelectionChangedEventArgse){stringmethod=null;foreach(ComboBoxItemitemine.AddedItems){method=item.Content.ToString();break;}switch(method){case"弹跳":DoubleAnimationdaX=newDoubleAnimation();DoubleAnimationdaY=newDoubleAnimation();BounceEasebe=newBounceEase();be.Bounces=2;be.Bounciness=3;daY.EasingFunction=be;daX.From=0D;daY.From=0D;daX.To=188;daY.To=46.5;Durationduration1=newDuration(TimeSpan.FromSeconds(1));daX.Duration=duration1;daY.Duration=duration1;this.square1.BeginAnimation(TranslateTransform.XProperty,daX);this.square1.BeginAnimation(TranslateTransform.YProperty,daY);this.circle1.BeginAnimation(TranslateTransform.XProperty,daX);this.circle1.BeginAnimation(TranslateTransform.YProperty,daY);break;case"水平平移":Randomr=newRandom();daX=null;daY=null;daX.To=100;daY.To=100;Durationduration2=newDuration(TimeSpan.FromSeconds(1));daX.Duration=duration2;daY.Duration=duration2;this.square1.BeginAnimation(TranslateTransform.XProperty,daX);this.square1.BeginAnimation(TranslateTransform.YProperty,daY);this.circle1.BeginAnimation(TranslateTransform.XProperty,daX);this.circle1.BeginAnimation(TranslateTransform.YProperty,daY);break;}}}}
解决方案三:
1.选完形状之后,如果调整了缩放那些,再选其他形状也是显示调整后的,怎样才能使缩放那些在选择形状后可以恢复初始值,或者怎么加一个重置按钮?2.弹跳那个动画怎么设置图形的初始位置在左上角?
解决方案四:
3.和1一样,再次选择形状后,它就不会再弹跳了,要怎么办?4.水平平移没有用是怎么回事?5.怎么用slider调整动画的速度?