旋转椭圆表示 - 与屏幕不平行的轴。 有可能用WinForms绘制它吗?如果不可能,如何用WPF绘制它?如果我必须使用WPF,我不想在xaml中定义它,因为我想绘制数千个实体,如CAD应用程序。
答案 0 :(得分:-1)
您可以使用我之前使用的以下xaml旋转您的日食。
<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>