C# 像汽车计价器一样移动XAML边界

C# 像汽车计价器一样移动XAML边界,c#,xaml,C#,Xaml,我有一个像汽车计数器一样的仪表。我在仪表中心放了一个像针一样的XAML边框 我想将“指针”从0移动到所需的值 例如,0为-133°,我的期望值为15°。我想让针达到这个期望值 我想把针一点一点地移动。我用一根线来做,但我的针不动。它正好在-133°处,然后直接转到15° 这是我第一次在c#中使用线程。我想我做得不对:) 我的XAML针: <Border x:Name="Aiguille_Jour" Width="3" Height="45&

我有一个像汽车计数器一样的仪表。我在仪表中心放了一个像针一样的XAML边框

我想将“指针”从0移动到所需的值

例如,0为-133°,我的期望值为15°。我想让针达到这个期望值

我想把针一点一点地移动。我用一根线来做,但我的针不动。它正好在-133°处,然后直接转到15°

这是我第一次在c#中使用线程。我想我做得不对:)

我的XAML针:

<Border x:Name="Aiguille_Jour" Width="3" Height="45" Grid.Row="3" Grid.Column="3" Background="Black" Margin="0 0 0 40"
            VerticalAlignment="Center" HorizontalAlignment="Center" CornerRadius="120 120 0 0" RenderTransformOrigin="1 1">
        <Border.RenderTransform>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform Angle="-133"/>
                <TranslateTransform/>
            </TransformGroup>
        </Border.RenderTransform>

        <Border.Effect>
            <DropShadowEffect BlurRadius="5" Color="Black" ShadowDepth="0"/>
        </Border.Effect>
    </Border>

private void Recup_ET_Affiche_Data()
{
//之前的其他代码。。。。
//
线程线程=新线程(()=>
{
对于(int i=-133;i
{
更新(i);
});
}
});
thread.Start();
//其他代码后。。。
//
}
私有无效更新(int i)
{
旋转变换rt_Jour=新的旋转变换(i);
Aiguille_Jour.RenderTransform=rt_Jour;
睡眠(10);
}
另一个代码是将数据放入我的窗口中的其他对象中

我应该刷新显示器吗

提前谢谢你

我解决了我的问题

我没有使用像针一样的边框,而是使用了针的图像(更简单)

我用WPF动画实现了图像的动画。(也更简单) [这里]

我的边界被替换为:

<Image x:Name="AiguilleJour" Source="Aiguille.png" Grid.Row="3" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" Panel.ZIndex="500"
           Height="45" Margin="0 0 0 40" RenderTransformOrigin="0.5 1">
        <Image.RenderTransform>
            <RotateTransform x:Name="RotationJour"/>
        </Image.RenderTransform>
    </Image>
var rotationAnimation = new DoubleAnimation(-133, 15, TimeSpan.FromSeconds(1.5));
        RotationJour.BeginAnimation(RotateTransform.AngleProperty, rotationAnimation);

谢谢你的帮助。

只是一个猜测,但也许你可以试试(inti=-133;i{Update(temp);});}您可能想看看WPFanimations@SomeBody这是工作,但不是很好smooth@KlausGütter我要一个look@Franck:好。以下是需要此临时变量的更多信息:
var rotationAnimation = new DoubleAnimation(-133, 15, TimeSpan.FromSeconds(1.5));
        RotationJour.BeginAnimation(RotateTransform.AngleProperty, rotationAnimation);