user2996533
user2996533

Reputation: 5

how to rotate ellipse in WPF

I am having assignment from which i want to rotate a ball exist in ellipse recursively when application load and remain rotating till it close... but i have no idea to do so.. anyone please help me .. thanks in advance .. My code in Xaml is ...

  <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>

Upvotes: 0

Views: 3934

Answers (1)

Espen Medb&#248;
Espen Medb&#248;

Reputation: 2315

This will for sure turn your ellipse for ever:

<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>

Upvotes: 1

Related Questions