I definiert ein Polygon wie folgt aus:Wie man eine Bitmap in einem Polygon dreht?
<!-- Draws a hexagon by specifying the vertices of a polygon -->
<Polygon x:Name="polygon"
Points="0,50 0,120 50,170 120,170 170,120 170,50 120,0 50,0"
Margin="25, 0, 25, 25"
Stroke="Red"
RenderTransformOrigin="0.5,0.5">
<Polygon.RenderTransform>
<CompositeTransform />
</Polygon.RenderTransform>
<Polygon.Fill>
<ImageBrush x:Name="imageBrush"
ImageSource="Assets/image1.jpg"
Stretch="Fill">
</ImageBrush>
</Polygon.Fill>
</Polygon>
I definiert auch ein Storyboard wie folgt aus:
<Storyboard x:Name="Storyboard2">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)"
Storyboard.TargetName="polygon">
<EasingDoubleKeyFrame KeyTime="0"
Value="0" />
<EasingDoubleKeyFrame KeyTime="0:0:2"
Value="-360" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
ich das Polygon Rotation wie folgt beginnen:
Storyboard2.BeginTime = new TimeSpan(0);
Storyboard2.Begin();
Der obige Code drehen das gesamte Polygon wie erwartet. Allerdings möchte ich es modifizieren und das Polygon stationär halten und nur die Bitmap innerhalb des Polygons drehen.
Wie mache ich das? Thx
Haben Sie die 'TargetName' von„Polygon“zu ändern versucht,„ImageBrush“? – aloisdg
ja. Ich habe es getan, aber nicht den Trick gemacht. Die Anwendung stürzt ab. –
Yea der Absturz zu erwarten, benötigen Sie einen [Transformation] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.media.brush.transform) und anzuwenden Wende die Animation darauf an, wenn ich Zeit habe, bevor ich nach Hause fahre, werde ich ein Beispiel auftreiben. –