基本上我目前在我的大学做最后一年的项目,我接触表面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);
}
}
}
任何帮助都会很高兴,提前谢谢。
答案 0 :(得分:10)
试试这个。您可以在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>
答案 1 :(得分:6)
您必须为此使用转换。试试这个答案https://stackoverflow.com/a/8815374/293712
或者您也可以尝试,(我还没试过)查看this article了解更多详情
textBlock2.RenderTransform = new RotateTransform(IntegerAngleValue);
答案 2 :(得分:2)
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);