Mencipta Garis Animasi pada Kanvas dalam C#
Dalam artikel ini, kita akan meneroka cara mencipta animasi garisan yang dilukis secara beransur-ansur merentasi kanvas dalam projek C#/WPF menggunakan kod dan bukannya XAML.
Pelaksanaan
Pelaksanaan melibatkan penggunaan Kanvas dalam ListBox untuk mencipta garisan. Setiap baris diwakili oleh LineViewModel yang mengandungi sifat untuk koordinat, warna, ketebalan dan kelegapan.
Pemasa digunakan untuk mengemas kini koordinat garisan dari semasa ke semasa, menghidupkan pergerakan garisan merentasi kanvas. Sifat AnimationSpeed mengawal kelajuan animasi.
Kod XAML
XAML untuk ListBox dan templat itemnya kelihatan seperti berikut:
<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
Kelas LineViewModel bertanggungjawab untuk menguruskan sifat dan animasi setiap baris:
public class LineViewModel : INotifyPropertyChanged { // ...properties and animation implementation... }
Penggunaan
Untuk menggunakan animasi, anda boleh menambah objek LineViewModel pada DataContext ListBox. Sifat Animate boleh digunakan untuk memulakan atau menghentikan animasi.
Kesimpulan
Menggunakan teknik yang diterangkan di atas, anda boleh mencipta garis animasi pada kanvas dalam C#/ Projek WPF tanpa menggunakan XAML. Pendekatan berasaskan pemasa menyediakan cara yang mudah dan fleksibel untuk mengawal kelajuan dan tingkah laku animasi.
Atas ialah kandungan terperinci Bagaimana untuk Menghidupkan Lukisan Garisan pada Kanvas C# WPF Menggunakan Kod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!