2017-04-05 3 views
-6

Rotierte Ellipse bedeutet - Achsen nicht parallel zum Bildschirm. Ist es möglich, es mit WinForms zu zeichnen? Wenn nicht möglich, wie man es mit WPF zeichnet? Wenn ich WPF verwenden muss, möchte ich es nicht in XAML definieren, weil ich Tausende Entitäten wie CAD-Anwendung zeichnen möchte.Wie zeichne gedrehte Ellipse in C#?

+1

Für Windows Forms Besuche [Graphics.RotateTransform] (https://msdn.microsoft.com/en-us/library/a0z3f662 (v = vs.110) .aspx). Beachten Sie, dass Grad, nicht Radianten erwartet wird. – adv12

+0

Und Sie sind ziemlich sicher, dass es nicht möglich ist, eine große Anzahl von Dingen in XAML zu tun, weil Sie ein XAML-Experte sind. –

+0

Mögliches Duplikat von [Ellipse mit Ursprung in der Mitte von WPF verwenden] (http://stackoverflow.com/questions/19665022/use-ellipse-with-origin-in-the-center-wpf) –

Antwort

-1

Sie können Ihre Eclipse mit dieser folgenden XAML, die ich zuvor verwendet habe, drehen.

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