WindowsPhone8模拟时钟
发布日期:2021-06-28 22:55:30 浏览次数:2 分类:技术文章

本文共 17078 字,大约阅读时间需要 56 分钟。

WindowsPhone8模拟时钟

     前端XAML示例代码:

    后台CS示例代码:

using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Media;using System.Windows.Navigation;using System.Windows.Threading;using Microsoft.Phone.Controls;using Microsoft.Phone.Shell;using Model;using MyClock.Code;using MyClock.Resources;using System.Windows.Media.Imaging;namespace MyClock{    public partial class MainPage : PhoneApplicationPage    {        #region 全局变量        ///         /// int i        ///         int i = 0;        ///         /// int j        ///         int j = 0;        ///         /// 以北京 东八区为0,相隔时区        ///         double TimeZones = 0;        ///         /// random 随机数        ///         Random random = new Random();        ///         /// 计时器        ///         DispatcherTimer timer = new DispatcherTimer();        #endregion        // 构造函数        public MainPage()        {            InitializeComponent();        }        ///         /// 页面加载        ///         ///         ///         private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)        {            //加载时间            timer.Interval = TimeSpan.FromSeconds(1);            timer.Tick += timer_Tick;            timer.Start();            //加载时钟            LoadClockDate();        }        ///         /// 加载时间        ///         void timer_Tick(object sender, EventArgs e)        {            DateTime time = DateTime.Now.AddHours(TimeZones);            if (this.PivotClock.SelectedIndex == 0)            {                //指定国家时间                DateAndTime myTime = new DateAndTime                {                    Year = time.ToString("yyyy").Trim(),                    Month = time.ToString("MM").Trim(),                    Day = time.ToString("dd").Trim(),                    Hour = time.ToString("HH").Trim(),                    Minute = time.ToString("mm").Trim(),                    Second = time.ToString("ss").Trim()                };                this.myTime.DataContext = myTime;                this.myTime.Visibility = System.Windows.Visibility.Visible;            }            else if (this.PivotClock.SelectedIndex == 1)            {                //世界时间                CountryTime();                this.myTime.Visibility = System.Windows.Visibility.Collapsed;            }        }        ///         /// 时钟开始        ///         public void LoadClockDate()        {            //当前时间            DateTime now = DateTime.Now.AddHours(TimeZones);            //定义秒针及其角度运算规律            double seclndAngle = now.Second * 6;            SecondAnimation.From = seclndAngle;            SecondAnimation.To = seclndAngle + 360;            //定义分针及其角度运算规律            double minuteAngle = now.Minute * 6 + now.Second / 10;            MinuteAnimation.From = minuteAngle;            MinuteAnimation.To = minuteAngle + 360;            //定义时针及其角度运算规律            double hourAngle = now.Hour * 30 + now.Minute / 2;            HourAnimation.From = hourAngle;            HourAnimation.To = hourAngle + 360;            //启动 Storyboaed 动画            ClockStoryboard.Begin();        }        ///         /// 背景样色改变        ///         ///         ///         private void ApplicationBar_StateChanged(object sender, ApplicationBarStateChangedEventArgs e)        {            ApplicationBar bar = (ApplicationBar)sender;            if (bar != null)            {                if (i % 2 == 0)                {                    bar.Opacity = 0.65;                    bar.BackgroundColor = Colors.Gray;                }                else                {                    bar.Opacity = 0;                    bar.BackgroundColor = Colors.Transparent;                }                i++;            }        }        ///         /// 菜单点击事件        ///         ///         ///         private void ApplicationBarMenuItem_Click(object sender, EventArgs e)        {            ApplicationBarMenuItem mitem = (ApplicationBarMenuItem)sender;            if (mitem != null)            {                String url = String.Empty;                String CityTime = mitem.Text.ToString().Trim();                switch (CityTime)                {                    case "北京时间":                        TimeZones = CityAndTimezone.BeiJing;                        url = "/Images/Background/bjClock.png";                        break;                    case "伦敦时间":                        TimeZones = CityAndTimezone.LunDun;                        url = "/Images/Background/ldClock.png";                        break;                    case "巴黎时间":                        TimeZones = CityAndTimezone.BaLi;                        url = "/Images/Background/blClock.png";                        break;                    case "东京时间":                        TimeZones = CityAndTimezone.DongJing;                        url = "/Images/Background/djClock.png";                        break;                    case "首尔时间":                        TimeZones = CityAndTimezone.ShouEr;                        url = "/Images/Background/srClock.png";                        break;                    case "柏林时间":                        TimeZones = CityAndTimezone.BoLin;                        url = "/Images/Background/dgClock.png";                        break;                    case "华盛顿时间":                        TimeZones = CityAndTimezone.HuaShengDun;                        url = "/Images/Background/hsdClock.png";                        break;                    case "莫斯科时间":                        TimeZones = CityAndTimezone.MoSiKe;                        url = "/Images/Background/mskClock.png";                        break;                    default:                        //默认为北京东八区时间                        TimeZones = CityAndTimezone.BeiJing;                        url = "/Images/Background/bjClock.png";                        break;                }                //设置标题                this.txtTime.Text = CityTime.Trim();                //设置背景                this.ClockBG.ImageSource = new BitmapImage(new Uri(url, UriKind.Relative));                //加载                PhoneApplicationPage_Loaded(null, null);                //样色修改                ChangeColor();                //切换到第一屏                if (this.PivotClock.SelectedIndex > 0)                    this.PivotClock.SelectedIndex = 0;            }        }        ///         /// 选项改变事件        ///         ///         ///         private void PivotClock_SelectionChanged(object sender, SelectionChangedEventArgs e)        {            //样色改变            ChangeColor();        }        ///         /// 样色改变事件        ///         public void ChangeColor()        {            //定义一个随机颜色            Color color = Color.FromArgb(255, (byte)random.Next(256), (byte)random.Next(256), (byte)random.Next(256));            StackPanel sp = (StackPanel)this.myTime.FindName("spFathen");            if (sp != null)                sp.Tag = color.ToString();        }        ///         /// 世界时间        ///         public void CountryTime()        {            DateTime time;            CountryAndTime cat = null;            List
catList = new List
(); if (j % 2 == 0) { //巴黎 time = DateTime.Now.AddHours(CityAndTimezone.BaLi); cat = new CountryAndTime() { Country = "法国", Time = time.ToString("HH:mm") }; catList.Add(cat); //柏林 time = DateTime.Now.AddHours(CityAndTimezone.BoLin); cat = new CountryAndTime() { Country = "德国", Time = time.ToString("HH:mm") }; catList.Add(cat); //日本 time = DateTime.Now.AddHours(CityAndTimezone.DongJing); cat = new CountryAndTime() { Country = "日本", Time = time.ToString("HH:mm") }; catList.Add(cat); //美国 time = DateTime.Now.AddHours(CityAndTimezone.HuaShengDun); cat = new CountryAndTime() { Country = "美国", Time = time.ToString("HH:mm") }; catList.Add(cat); //英国 time = DateTime.Now.AddHours(CityAndTimezone.LunDun); cat = new CountryAndTime() { Country = "英国", Time = time.ToString("HH:mm") }; catList.Add(cat); //韩国 time = DateTime.Now.AddHours(CityAndTimezone.ShouEr); cat = new CountryAndTime() { Country = "韩国", Time = time.ToString("HH:mm") }; catList.Add(cat); //俄国 time = DateTime.Now.AddHours(CityAndTimezone.MoSiKe); cat = new CountryAndTime() { Country = "俄国", Time = time.ToString("HH:mm") }; catList.Add(cat); //中国 time = DateTime.Now.AddHours(CityAndTimezone.BeiJing); cat = new CountryAndTime() { Country = "中国", Time = time.ToString("HH:mm") }; catList.Add(cat); //印度 time = DateTime.Now.AddHours(CityAndTimezone.XinDeli); cat = new CountryAndTime() { Country = "印度", Time = time.ToString("HH:mm") }; catList.Add(cat); //新加坡 time = DateTime.Now.AddHours(CityAndTimezone.XinJiaPo); cat = new CountryAndTime() { Country = "加坡", Time = time.ToString("HH:mm") }; catList.Add(cat); } else { //巴黎 time = DateTime.Now.AddHours(CityAndTimezone.BaLi); cat = new CountryAndTime() { Country = "法国", Time = time.ToString("HH mm") }; catList.Add(cat); //柏林 time = DateTime.Now.AddHours(CityAndTimezone.BoLin); cat = new CountryAndTime() { Country = "德国", Time = time.ToString("HH mm") }; catList.Add(cat); //日本 time = DateTime.Now.AddHours(CityAndTimezone.DongJing); cat = new CountryAndTime() { Country = "日本", Time = time.ToString("HH mm") }; catList.Add(cat); //美国 time = DateTime.Now.AddHours(CityAndTimezone.HuaShengDun); cat = new CountryAndTime() { Country = "美国", Time = time.ToString("HH mm") }; catList.Add(cat); //英国 time = DateTime.Now.AddHours(CityAndTimezone.LunDun); cat = new CountryAndTime() { Country = "英国", Time = time.ToString("HH mm") }; catList.Add(cat); //韩国 time = DateTime.Now.AddHours(CityAndTimezone.ShouEr); cat = new CountryAndTime() { Country = "韩国", Time = time.ToString("HH mm") }; catList.Add(cat); //俄国 time = DateTime.Now.AddHours(CityAndTimezone.MoSiKe); cat = new CountryAndTime() { Country = "俄国", Time = time.ToString("HH mm") }; catList.Add(cat); //中国 time = DateTime.Now.AddHours(CityAndTimezone.BeiJing); cat = new CountryAndTime() { Country = "中国", Time = time.ToString("HH mm") }; catList.Add(cat); //印度 time = DateTime.Now.AddHours(CityAndTimezone.XinDeli); cat = new CountryAndTime() { Country = "印度", Time = time.ToString("HH mm") }; catList.Add(cat); //新加坡 time = DateTime.Now.AddHours(CityAndTimezone.XinJiaPo); cat = new CountryAndTime() { Country = "加坡", Time = time.ToString("HH mm") }; catList.Add(cat); } j++; //绑定 this.lbCountryTime.ItemsSource = catList; } ///
/// 具体国家时间表 /// ///
///
private void lbCountryTime_SelectionChanged(object sender, SelectionChangedEventArgs e) { CountryAndTime cat = (CountryAndTime)this.lbCountryTime.SelectedItem; if (cat != null) { String url = String.Empty; String title = String.Empty; switch (cat.Country.Trim()) { case "法国": title = "巴黎时间"; TimeZones = CityAndTimezone.BaLi; url = "/Images/Background/blClock.png"; break; case "德国": title = "柏林时间"; TimeZones = CityAndTimezone.BoLin; url = "/Images/Background/dgClock.png"; break; case "日本": title = "东京时间"; TimeZones = CityAndTimezone.DongJing; url = "/Images/Background/djClock.png"; break; case "美国": title = "华盛顿时间"; TimeZones = CityAndTimezone.HuaShengDun; url = "/Images/Background/hsdClock.png"; break; case "英国": title = "伦敦时间"; TimeZones = CityAndTimezone.LunDun; url = "/Images/Background/ldClock.png"; break; case "韩国": title = "首尔时间"; TimeZones = CityAndTimezone.ShouEr; url = "/Images/Background/srClock.png"; break; case "俄国": title = "莫斯科时间"; TimeZones = CityAndTimezone.MoSiKe; url = "/Images/Background/mskClock.png"; break; case "中国": title = "北京时间"; TimeZones = CityAndTimezone.BeiJing; url = "/Images/Background/bjClock.png"; break; case "印度": title = "新德里时间"; TimeZones = CityAndTimezone.XinDeli; url = "/Images/Background/bjClock.png"; break; case "加坡": title = "新加坡时间"; TimeZones = CityAndTimezone.XinJiaPo; url = "/Images/Background/bjClock.png"; break; } //设置标题 this.txtTime.Text = title.Trim(); //设置背景 this.ClockBG.ImageSource = new BitmapImage(new Uri(url, UriKind.Relative)); //加载 PhoneApplicationPage_Loaded(null, null); //样色修改 ChangeColor(); //切换到第一屏 if (this.PivotClock.SelectedIndex > 0) this.PivotClock.SelectedIndex = 0; } } }}

 源码下载地址:

  

   

 效果截图如下:

 

转载地址:https://blog.csdn.net/yimiyuangguang/article/details/22306241 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:jQuery 中国省市两级联动(实用)
下一篇:全面兼容的Iframe 与父页面交互操作

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月16日 16时28分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章