我需要显示一个连续旋转的图像,直到该表格关闭。这意味着图像应该继续旋转。我正在使用c#在Windows应用程序中尝试此示例。我做了一个例子,标签中的文字正在通过以下代码移动:
label1.Location = new Point(label1.Location.X + 5, label1.Location.Y);
标签中的文字可能必须旋转,而不是像水平或垂直移动一样。
答案 0 :(得分:2)
您可以按照以下步骤执行此操作:
添加angle
变量
在表单中添加“画布”控件,例如一个Panel
覆盖其Paint
事件
使用标签的DrawToBitmap
方法将标签呈现在面板上
修改angle
并首先调用Invalidate
,然后调用Update
控件上拥有您正在绘制的画布(在此示例中为Panel
})
不应在设计师中添加您的标签。
您也可以在没有标签控件的情况下使用它,只需一个简单的文本即可 - 您可以使用DrawString
方法。
答案 1 :(得分:1)
尝试这样的事情:
<Storyboard x :Key="sbSpin">
<DoubleAnimation
Storyboard.TargetName="Spin"
Storyboard.TargetProperty="(Button.RenderTransform).(RotateTransform.Angle)"
From="0"
To="360"
RepeatBehavior="Forever"
Duration="0:0:3" Completed ="DoubleAnimation_Completed" />
</Storyboard>
我最近写了一系列博客文章:
http://pmichaelsdev.wordpress.com/2013/11/18/animation-in-xaml-part-3/
答案 2 :(得分:0)
有很多文章解释了如何轮换Image。在表单加载时,您需要进行一些自定义以使其保持旋转状态。
只需download源代码,然后在Form1
中添加以下代码。启动一个新线程并调用一个不断旋转图像的函数。
private void Form1_Load(object sender, EventArgs e)
{
Thread t = new Thread(KeepRotating); // Kick off a new thread
t.Start();
}
void KeepRotating()
{
for (float i = 1; i <= 360; i++)
{
RotateImage(pictureBox1, image, i);
Thread.Sleep(20); // for slower rotation, Avoid if not needed
if (i == 360f)
{
i = 1f;
}
}
}
输出看起来像这样。
P.S。这是完成任务的一种非常简单和原始的方法。确保处理异常处理和内存泄漏。