Как вы вращаете текст в текстовом блоке в C # (Code-Behind) ~~ - PullRequest
8 голосов
/ 30 января 2012

По сути, в настоящее время я делаю последний год проекта в своем колледже, в котором я касаюсь поверхности 2.0 WPF.

Мой проект - игра, в которой, если пользователь ответит на вопрос неправильно, следующий вопрос будет повернут, чтобы сделать его более трудным. Но я не уверен, как это сделать. Я видел пример в MSDN Microsoft, но он показывает только коды XAML. Мне нужны коды C #.

Вот пример XAML.

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

Последний пример

Вот часть моих проверочных кодов. Мне нужно активировать анимацию, если пользователь ответит неправильно.

 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);
                }
            }
        }

Любая Помощь будет рада, заранее спасибо.

Ответы [ 3 ]

10 голосов
/ 30 января 2012

Попробуйте это. Вы можете использовать анимацию в RenderTransform:

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

В вашем Xaml вы можете добавить RotateTransform:

<TextBlock>
  <TextBlock.RenderTransform>
    <RotateTransform Angle="0"/>
  </TextBlock.RenderTransform>
</TextBlock>
7 голосов
/ 30 января 2012

Для этого вам придется использовать Преобразование.Попробуйте этот ответ https://stackoverflow.com/a/8815374/293712

Или Вы также можете попробовать, (я не пробовал это) Посмотрите эту статью для более подробной информации

textBlock2.RenderTransform = new RotateTransform(IntegerAngleValue); 
2 голосов
/ 26 июня 2013
            var rotateAnimation = new DoubleAnimation(180, 0, TimeSpan.FromMilliseconds(200));
            UiImage.RenderTransformOrigin = new Point(0.5,0.5);
            UiImage.RenderTransform = new RotateTransform();
            var rt = (RotateTransform)UiImage.RenderTransform;
            rt.BeginAnimation(RotateTransform.AngleProperty, rotateAnimation);
...