Wpf简单的时钟

3 篇文章 0 订阅

<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();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值