C# で WPF キャンバス上の線をアニメーション化する
線のプロパティを動的に更新することで、キャンバス上で線のアニメーションを実現できます。詳細な内訳は次のとおりです:
LineViewModel の使用:
ラインのプロパティとアニメーションを管理するには、データ バインディングを実装する LineViewModel クラスを作成します。このクラスは、座標値、線の太さ、色、不透明度を処理します。
アニメーションの開始と停止:
Animate プロパティは、線をアニメーション化するかどうかを制御します。 true に設定するとタイマーベースのアニメーションが開始され、false に設定すると停止します。
タイマーベースのアニメーション:
System.Threading.Timer が使用されます。ラインの座標を定期的に更新します。 Timer_Tick() メソッドは、X1、Y1、X2、および Y2 プロパティへのランダムな増分を計算し、ラインを効果的に移動します。
WPF XAML:
XAML マークアップ内、ListBox を行のコンテナとして定義します。各リスト項目には、LineViewModel プロパティにバインドされた Line 要素が含まれています。 Canvas は線をホストする ItemsPanel として使用されます。
線プロパティへのバインド:
線の外観と座標は LineViewModel プロパティにバインドされます。 X1、Y1、X2、および Y2 プロパティは、線の終点を制御します。 Thick、StrokeThickness、Color1、Color2、および Opacity プロパティは、線のサイズ、色、可視性を構成します。
完全なコード例:
これを示すコード サンプルは次のとおりです。の実装:
ViewModel:
public class LineViewModel : INotifyPropertyChanged { // ... (Line properties and animation logic) }
XAML:
<ListBox ItemsSource="{Binding}" x:Name="lst" Height="500" Width="500"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <Canvas IsItemsHost="True"/> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <Line X1="{Binding X1}" Y1="{Binding Y1}" X2="{Binding X2}" Y2="{Binding Y2}" StrokeThickness="{Binding Thickness}" Opacity="{Binding Opacity}"> <Line.Stroke> <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> <GradientStop Color="{Binding Color1}" Offset="0"/> <GradientStop Color="{Binding Color2}" Offset="1"/> </LinearGradientBrush> </Line.Stroke> </Line> </ControlTemplate> </Setter.Value> </Setter> </Style> </ListBox.ItemContainerStyle> </ListBox>
説明されているアプローチを利用すると、次のことができます。 C#/WPF でキャンバス上の線を簡単にアニメーション化し、動的で魅力的なビジュアライゼーションを作成します。
以上がC# を使用して WPF キャンバス上の線をアニメーション化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。