【发布时间】:2016-05-12 20:16:44
【问题描述】:
我这样定义了一个多边形:
<!-- 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>
我还定义了一个这样的故事板:
<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>
我这样开始多边形旋转:
Storyboard2.BeginTime = new TimeSpan( 0 );
Storyboard2.Begin();
上面的代码按预期旋转了整个多边形。但是我想修改它,让多边形静止,只是在多边形内旋转位图。
我该怎么做? 谢谢
【问题讨论】:
-
您是否尝试将
TargetName从“polygon”更改为“imageBrush”? -
是的。我做到了,但没有做到这一点。应用程序崩溃。
-
是的,崩溃是意料之中的,您需要应用 Transform 并将动画应用到它,如果我在回家之前有时间,我会举个例子。
-
我试过这个:
但没有成功。 -
旋转是您想要完成的所有事情,对吗?有点希望我能看到想要的结果,因为通常有不止一种方法可以给猫剥皮(俗话说)。
标签: c# xaml win-universal-app polygon imagebrush