<Window x:Class="Wpf练习.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Wpf练习"
mc:Ignorable="d"
Title="时钟" Height="750" Width="700" Loaded="Window_Loaded">
<Canvas x:Name="SZ">
<Image Source="img/shizhong.png" x:Name="biao" Canvas.Left="40"></Image>
<Image Source="img/xiaoshi.png" x:Name="xiaoshi" Width="200" Canvas.Left="253" Canvas.Top="199" RenderTransformOrigin="0.496,0.542"></Image>
<Image Source="img/fengzhong.png" x:Name="fengzhong" Width="150" Canvas.Left="297" Canvas.Top="253" RenderTransformOrigin="0.363,0.368"></Image>
<Image Source="img/miao.png" x:Name="miao" Width="160" Canvas.Left="312" Canvas.Top="194" RenderTransformOrigin="0.24,0.711"></Image>
<Label x:Name="jishi" Width="150" Height="50" Canvas.Left="30" Canvas.Top="5"></Label>
</Canvas>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
namespace Wpf练习
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
//故事板必须在同一个世界
Storyboard shiJian = new Storyboard();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//实例化时间对象
//DateTime time = DateTime.Now;
//int m = time.Second;
//获取系统的时间
double Miao = DateTime.Now.Second * 6;
double Feng = DateTime.Now.Minute * 6;
double Shi = (DateTime.Now.Hour * 30) + (DateTime.Now.Minute * 0.5);
//MessageBox.Show(DateTime.Now.ToString());
//编辑故事情节
DoubleAnimation move = new DoubleAnimation(Miao - 55, 360 + Miao, new Duration(TimeSpan.FromSeconds(60)));
Storyboard.SetTarget(move, miao);
//欧拉角
Storyboard.SetTargetProperty(move, new PropertyPath("RenderTransform.Angle"));
//让旋转无线重复
move.RepeatBehavior = RepeatBehavior.Forever;
shiJian.Children.Add(move);
//实例化旋转对象
RotateTransform shijian = new RotateTransform();
//位置的改变是以旋转对象改变
miao.RenderTransform = shijian;
//秒针的旋转轴坐标
miao.RenderTransformOrigin = new Point(0.24, 0.711);
shiJian.Begin();
//分钟
//编辑故事情节
DoubleAnimation biao1 = new DoubleAnimation(Feng - 135, 360 + Feng, new Duration(TimeSpan.FromHours(1)));
Storyboard.SetTarget(biao1, fengzhong);
//欧拉角
Storyboard.SetTargetProperty(biao1, new PropertyPath("RenderTransform.Angle"));
//两个可选属性
biao1.RepeatBehavior = RepeatBehavior.Forever;
shiJian.Children.Add(biao1);
//实例化旋转对象
RotateTransform shijian1 = new RotateTransform();
//给对象设置旋转中心
fengzhong.RenderTransform = shijian1;
//分钟的旋转轴坐标
fengzhong.RenderTransformOrigin = new Point(0.363, 0.368);
shiJian.Begin();
//小时
//编辑故事情节
DoubleAnimation biao2 = new DoubleAnimation(Shi, 360 + Shi, TimeSpan.FromHours(12));
Storyboard.SetTarget(biao2, xiaoshi);
//欧拉角
Storyboard.SetTargetProperty(biao2, new PropertyPath("RenderTransform.Angle"));
//两个可选属性
biao2.RepeatBehavior = RepeatBehavior.Forever;
shiJian.Children.Add(biao2);
//实例化旋转对象
RotateTransform shijian2 = new RotateTransform();
//给小时添加旋转对象
xiaoshi.RenderTransform = shijian2;
//时钟的旋转轴坐标
xiaoshi.RenderTransformOrigin = new Point(0.496, 0.542);
shiJian.Begin();