使用的套件是using System.Windows.Media;
source code:
- using System;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Threading;
- namespace TransformSample
- {
- public partial class MainWindow : Window
- {
- private int frame_count = 0;
- private double fps = 30.0;
- private DispatcherTimer timer_main;
- public MainWindow()
- {
- InitializeComponent();
- timer_main = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1.0 / fps) };
- timer_main.Tick += TimerMainTick;
- timer_main.Start();
- }
- private void TimerMainTick(object sender, EventArgs e)
- {
- frame_count++;
- label_count.Content = frame_count;
- TranslateObjectFunc(image_translate, frame_count);
- ScaleObjectFunc(image_sacle, frame_count);
- RotateObjectFunc(image_rotate, frame_count);
- }
- private void TranslateObjectFunc(Image image, double parament)
- {
- parament = 5.0 * parament % 50.0;
- TranslateTransform tt = new TranslateTransform(0, parament);
- image.RenderTransform = tt;
- }
- private void ScaleObjectFunc(Image image, double parament)
- {
- double ratio = 20.0;
- parament = (parament % ratio) / ratio;
- ScaleTransform st = new ScaleTransform(parament, parament);
- image.RenderTransformOrigin = new Point(0.5, 0.5); // object center
- image.RenderTransform = st;
- }
- private void RotateObjectFunc(Image image, double parament)
- {
- parament = parament % 360;
- RotateTransform rt = new RotateTransform(parament);
- image.RenderTransformOrigin = new Point(0.5, 0.5); // object center
- image.RenderTransform = rt;
- }
- private void Window_KeyDown(object sender, KeyEventArgs e)
- {
- if(e.Key == Key.Escape)
- {
- Application.Current.Shutdown();
- }
- }
- }
- }
end
沒有留言:
張貼留言