WPF에서는 단순히 선 컨트롤을 움직이게 할 수 있습니다.
<Canvas>
<Line x:Name="line"
X2="{Binding X1, RelativeSource={RelativeSource Mode=Self}}"
Y2="{Binding ActualHeight, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Canvas}}" Stroke="Red" StrokeThickness="4">
</Line>
</Canvas>
는
작성하고이 같은 방법으로 애니메이션을 시작할 것 : 바인딩하여 X2
속성 후속 라인의 X1
속성을 애니메이션
private void StartAnimation()
{
var animation = new DoubleAnimation
{
To = ActualWidth, // width of the window
Duration = TimeSpan.FromSeconds(ActualWidth/32),
RepeatBehavior = RepeatBehavior.Forever
};
line.BeginAnimation(Line.X1Property, animation);
}
대신하고하자 당신은 할 수 또한 라인의 RenderTransform에 애니메이션을 적용하십시오.
<Canvas>
<Line Y2="{Binding ActualHeight, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Canvas}}" Stroke="Red" StrokeThickness="4">
<Line.RenderTransform>
<TranslateTransform x:Name="transform"/>
</Line.RenderTransform>
</Line>
</Canvas>
StartAnimation 메서드는 이제 다음과 같습니다.
private void StartAnimation()
{
var animation = new DoubleAnimation
{
To = ActualWidth, // width of the window
Duration = TimeSpan.FromSeconds(ActualWidth/32),
RepeatBehavior = RepeatBehavior.Forever
};
transform.BeginAnimation(TranslateTransform.XProperty, animation);
}
얼마나 빨리 이동해야합니까? – Clemens
32Hz에서 32 픽셀/초 – Muis