如何旋转图像,使其看起来像在C#UWP中浮动?

时间:2019-01-04 08:34:06

标签: c# xaml uwp uwp-xaml

我已经在XAML中添加了图片,并希望连续不断地随机旋转图片,以使其看起来像是漂浮的。
这是我已经尝试过的代码。

XAML

<Image Source="Assets\balloon-red.png"
           x:Name="redBaloon"
           Width="300"
           Stretch="Uniform"
           Height="Auto"
           Margin="490,124,490,-124" /> 

C#

public MainPage()  
{
    this.InitializeComponent();  
    Loaded += MainPage_Loaded;  
    Random randRotate = new Random();  
    RotateTransform imageRotate = new RotateTransform();  
    redBaloon.RenderTransform = imageRotate;  
    imageRotate.Angle = randRotate.Next(-5,5);  
}

它仅旋转一次。但我希望它不断旋转。我怎样才能做到这一点?我认为我必须在主类之外编写代码,但是我不知道正确的方法。请帮帮我。

1 个答案:

答案 0 :(得分:0)

要连续重复旋转,可以使用DispatcherTimer。

public MainPage() {
        this.InitializeComponent();
        StartTimers();
    }

    DispatcherTimer dispatcherTimer;
    public void StartTimers() {
        dispatcherTimer = new DispatcherTimer();
        dispatcherTimer.Tick += dispatcherTimer_Tick;
        dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
        dispatcherTimer.Start();
    }

    // callback runs on UI thread
    void dispatcherTimer_Tick(object sender, object e) {
        // execute repeating task here
        Random randRotate = new Random();
        RotateTransform imageRotate = new RotateTransform();
        redBaloon.RenderTransform = imageRotate;
        imageRotate.Angle = randRotate.Next(-5, 5);
    }

上面的代码重复了Tick内部定义的操作。

有关此内容的更多详细信息,请点击此处DispatcherTimer