如何在WPF中旋转椭圆

时间:2013-11-28 18:01:20

标签: c# wpf

我正在进行分配我希望旋转一个球在应用程序加载时以递归方式存在于椭圆中并保持旋转直到它关闭...但我不知道这样做...有人请帮助我..提前感谢..我在Xaml的代码是......

  <Window Loaded="StartGame" x:Class="PaddingBall.Window1"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          Height="500" Width="700" Background="White" Name="playground" ResizeMode="NoResize"       
           WindowStartupLocation="CenterScreen" SizeToContent="WidthAndHeight">
      <Canvas Width="700" Height="500">

       <Grid Height="462" Width="700" Canvas.Top="-18">
          <Grid.ColumnDefinitions>
              <ColumnDefinition Width="700*" />
              <ColumnDefinition Width="0*" />
              <ColumnDefinition Width="0*" />
          </Grid.ColumnDefinitions>
              <Ellipse Margin="108,88,0,0" Name="ball" Stroke="Black" Height="29"                                                             
                  VerticalAlignment="Top" Stretch="UniformToFill" HorizontalAlignment="Left"            
                   Width="28" RenderTransformOrigin="0.5,0.5">
                     <Ellipse.RenderTransform>
                         <TransformGroup>
                           <ScaleTransform/>
                     <SkewTransform/>
                  <RotateTransform Angle="2735.771"/>
                <TranslateTransform/>
              </TransformGroup>
             </Ellipse.RenderTransform>
                 <Ellipse.Fill>
                   <ImageBrush ImageSource="C:\Users\A TECH\Desktop\project\2.jpg"/>
                 </Ellipse.Fill>
            <Ellipse.BitmapEffect>
                 <BevelBitmapEffect BevelWidth="1" />
            </Ellipse.BitmapEffect>
               <Ellipse.BitmapEffectInput>
                   <BitmapEffectInput />
               </Ellipse.BitmapEffectInput>
         </Ellipse>
        <Rectangle Height="13" Margin="200,390,0,0" Name="pad" Stroke="Black"  
             VerticalAlignment="Bottom" Fill="Black" HorizontalAlignment="Left" Width="100" />
    </Grid>
</Canvas>

1 个答案:

答案 0 :(得分:1)

这肯定会永远转动你的椭圆:

<Window x:Class="WpfApplication3.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">
    <Window.Resources>
        <Storyboard x:Key="Storyboard1">
            <DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="ball">
                <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="360"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
        </EventTrigger>
    </Window.Triggers>
    <Grid>
         <Canvas Width="700" Height="500">

        <Grid Height="462" Width="700" Canvas.Top="-18">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="700*" />
                <ColumnDefinition Width="0*" />
                <ColumnDefinition Width="0*" />
            </Grid.ColumnDefinitions>
            <Ellipse Margin="108,88,0,0" Name="ball" Stroke="Black" Height="129"                                                             
                  VerticalAlignment="Top" Stretch="UniformToFill" HorizontalAlignment="Left"            
                   Width="128" RenderTransformOrigin="0.5,0.5">
                <Ellipse.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform />
                        <TranslateTransform/>
                    </TransformGroup>
                </Ellipse.RenderTransform>
                <Ellipse.Fill>
                    <ImageBrush ImageSource="C:\Users\A TECH\Desktop\project\2.jpg"/>
                </Ellipse.Fill>
                <Ellipse.BitmapEffect>
                    <BevelBitmapEffect BevelWidth="1" />
                </Ellipse.BitmapEffect>
                <Ellipse.BitmapEffectInput>
                    <BitmapEffectInput />
                </Ellipse.BitmapEffectInput>
            </Ellipse>
            <Rectangle Height="13" Margin="200,390,0,0" Name="pad" Stroke="Black"  
             VerticalAlignment="Bottom" Fill="Black" HorizontalAlignment="Left" Width="100" />

        </Grid>
    </Canvas>
    </Grid>
</Window>