Как повернуть текст в textblock в C# (Code-Behind)~~
в основном я в настоящее время делаю проект последнего года в своем колледже, в котором я касаюсь поверхности 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 ответов
попробуйте этот. Вы можете использовать анимацию на 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>
для этого вам придется использовать преобразование. Попробуйте этот ответ https://stackoverflow.com/a/8815374/293712
или вы также можете попробовать, (я не пробовал это) посмотрите на в этой статье для более подробной информации
textBlock2.RenderTransform = new RotateTransform(IntegerAngleValue);
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);