
C# でキャンバスにアニメーションの線を作成する
この記事では、徐々に横に描かれる線のアニメーションを作成する方法を検討します。ではなくコードを使用した C#/WPF プロジェクトのキャンバスXAML.
実装
実装では、ListBox 内で Canvas を使用して線を作成します。各線は、座標、色、太さ、不透明度のプロパティを含む LineViewModel によって表されます。
タイマーを使用して時間の経過とともに線の座標を更新し、キャンバス上の線の動きをアニメーション化します。 AnimationSpeed プロパティは、アニメーションの速度を制御します。
XAML コード
ListBox とその項目テンプレートの 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="FocusVisualStyle">
<Setter.Value>
<Style TargetType="Control">
<Setter Property="Opacity" Value="0"/>
</Style>
</Setter.Value>
</Setter>
<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}"
x:Name="Line">
<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.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Effect" TargetName="Line">
<Setter.Value>
<DropShadowEffect Color="CornflowerBlue" ShadowDepth="3" BlurRadius="10"/>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>ViewModel
LineViewModelクラスは、各行のプロパティとアニメーションを管理します。
public class LineViewModel : INotifyPropertyChanged
{
// ...properties and animation implementation...
}Usage
アニメーションを使用するには、LineViewModel オブジェクトをリストボックス。 Animate プロパティは、アニメーションを開始または停止するために使用できます。
結論
上記の手法を使用すると、C#/ のキャンバス上にアニメーション化された線を作成できます。 XAML に頼らない WPF プロジェクト。タイマーベースのアプローチにより、アニメーションの速度と動作を制御するためのシンプルかつ柔軟な方法が提供されます。
以上がコードを使用して C# WPF キャンバス上の線画をアニメーション化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。