C# 像汽车计价器一样移动XAML边界
我有一个像汽车计数器一样的仪表。我在仪表中心放了一个像针一样的XAML边框 我想将“指针”从0移动到所需的值 例如,0为-133°,我的期望值为15°。我想让针达到这个期望值 我想把针一点一点地移动。我用一根线来做,但我的针不动。它正好在-133°处,然后直接转到15° 这是我第一次在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&
<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);