Search code examples
wpfanimationtextblockpixelsense

How do you rotate the text in textblock in C# (Code-Behind)~~


Basically I am currently doing final year project in my college whereby i am touching on surface 2.0 WPF.

My project is a game whereby if a user answer a question wrongly,the next question will be rotated to make it more difficult. But I am unsure how to do it. I saw an example in msdn microsoft but it only shows XAML codes. I need the C# codes.

Here's the XAML example.

http://msdn.microsoft.com/en-us/library/ms754028.aspx

The last example

Here's part of my validation codes. I need to activate the animation if user answer wrongly.

 if (surfaceRadioButton1.IsChecked == true)

{

user_answer = (string)surfaceRadioButton1.Content;

            textBlock2.Text = validateAnswer(user_answer, answer);
            retreiveYellowQns();
            if (textBlock2.Text.Equals("Correct"))
            {
                yellow_coord = yellow_coord + 50;
                Canvas.SetLeft(car, yellow_coord);
                Canvas.SetTop(car, 289);
            }
            else
            {
                if (yellow_coord <= 330)
                {
                    yellow_coord = 330;
                    Canvas.SetLeft(car, yellow_coord);
                    Canvas.SetTop(car, 289);
                }
                else
                {
                    yellow_coord = yellow_coord - 50;
                    Canvas.SetLeft(car, yellow_coord);
                    Canvas.SetTop(car, 289);
                }
            }
        }

Any Help will be glad,thanks in advance.


Solution

  • Try this one. You can use an animation on the RenderTransform:

    var rotateAnimation = new DoubleAnimation(0, 180, TimeSpan.FromSeconds(5));
    var rt = (RotateTransform) textblock2.RenderTransform;
    rt.BeginAnimation(RotateTransform.AngleProperty, rotateAnimation);
    

    In your Xaml, you can add the RotateTransform:

    <TextBlock>
      <TextBlock.RenderTransform>
        <RotateTransform Angle="0"/>
      </TextBlock.RenderTransform>
    </TextBlock>