使用的套件是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
沒有留言:
張貼留言