[Windows Phone]讓物件旋轉吧!使用RenderTransform。
這篇利用「Timer」及「RenderTransform」,讓物件一直旋轉。
能夠用在雙人遊戲上,決定誰先開始~
1.先到xaml裡建一個「textblock」,裡面的text為「- ->」,若字體太小,可以自行調大。
再建立2個「button」決定「start」、「stop」。
1: <Grid x:Name="ContentPanel" Grid.Row="1" >
2: <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
3: <TextBlock Name="textblock" TextAlignment="Center" FontSize="40" Text="-->"/>
4: <StackPanel Orientation="Horizontal">
5: <Button x:Name="btn_start" Click="btn_start_Click" Content="start"/>
6: <Button x:Name="btn_stop" Click="btn_stop_Click" Content="stop"/>
7: </StackPanel>
8: </StackPanel>
9:
10: </Grid>
2.之後宣告並建立Timer,請參考[Windows Phone] DispatcherTimer之應用。
3.在Timer所委派的事件裡打入
1: private void Timethread()
2: {
3: TransformGroup tGroup = new TransformGroup();
4: RotateTransform tRot = new RotateTransform();
5: Recordslaps += 3;
6: tRot.Angle = Recordslaps % 360;
7: tGroup.Children.Add(tRot);
8: Dispatcher.BeginInvoke(() =>
9: {
10: textblock.RenderTransform = tGroup;
11: textblock.RenderTransformOrigin = new Point(0.5, 0.5);
12: });
13: }
記得「using System.Windows.Media;」,之後宣告全域變數
1: System.Windows.Threading.DispatcherTimer tDistimer = new System.Windows.Threading.DispatcherTimer();
2: int Recordslaps = 0;
Recordslaps為紀錄累計角度的變數,在tRot.Angle設定為Recordslaps%360。
之後使用委派處理「Textblock」。
Reference
How to rotate a image in xaml/c#
若有觀念錯誤、內容錯誤,勞請告知。 謝謝。
若要轉載請註明出處,謝謝。