桌面钟表.docx
- 文档编号:8505523
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:24
- 大小:2.72MB
桌面钟表.docx
《桌面钟表.docx》由会员分享,可在线阅读,更多相关《桌面钟表.docx(24页珍藏版)》请在冰豆网上搜索。
桌面钟表
桌面钟表小软件设计
一、桌面钟表小软件设计的开发环境:
开发平台:
vs2005;
开发形式:
c#.net,winform应用程序窗口;
开发语言:
c#高级程序语言;
二、桌面钟表小软件设计特点:
该软件主要实现在桌面上显示个性化钟表;
钟表设计精巧灵活,用户可以根据自己的喜好进行钟表皮肤和样式的设定。
三、具体设计
该软件主要设计了两个winform窗体,分别用于软件主界面和功能设置窗口。
1、桌面钟表主界面设计
该软件运行效果如图右上角:
图1运行效果截图
该界面的设计布局由winform窗体,菜单ContextMenuStrip控件,notifyIcon控件和时间控件timer等五个控件组成。
具体设计布局如图所示:
图2主窗口设计界面
该界面功能主要是在桌面上显示当前日期和时间,主要包括显示当前日期和时间,软件隐藏,软件自启动,更新刷新时间,边框显示和隐藏,软件窗口置顶,透明度设置,关于软件的介绍等基本功能。
(1)钟表设计由C#代码实现
publicstructClock_Style
{
publicStringClockName;//方案内部名称
publicStringdial_plate_Name;//表盘文件名称
publicStringClockCenterLocation;//中心点位置,值"center"或"custom",大小写敏感
publicPointFClockCenterPoint;//默认设置到窗体中心;
publicColorTransparentColor;//透明色
publicColorOpacityColor;//窗体不透明色
//时针,分针,秒针长度
publicintHourHardLong;
publicintMinuteHardLong;
publicintSecondHandLong;
//时针,分针,秒针颜色
publicColorHourHardColor;
publicColorMinuteHardColor;
publicColorSecondHardColor;
publicColorCenterPointColor;//中心点颜色
publicColorDigitalDateColor;//数字式日期的显示颜色
}
publicClock_StyleDefaultClock;//默认钟表样式
publicvoidInitClockStyle()//初始化钟表样式
{
XmlDocumentXmlDoc=newXmlDocument();//通过xml装载xml文档
XmlDoc.Load(Application.StartupPath+"\\Clock.xml");//从当前文档获取钟表xml文档
XmlNodexn=XmlDoc.SelectSingleNode("ClockStyle");
XmlNodeListxnl=xn.ChildNodes;
foreach(XmlNodexnfinxnl)//循环构造钟表样式
{
XmlElementxe=(XmlElement)xnf;
if(xe.GetAttribute("DefaultStyle")=="Use")
{
DefaultClock.ClockName=xe.GetAttribute("name");
foreach(XmlNodexn2inxnf)
{
//遍历所有子节点xn2.InnerText;
switch(xn2.Name)
{
case"ClockCenterLocation":
DefaultClock.ClockCenterLocation=xn2.InnerText;
break;
case"ClockCenterPointX":
DefaultClock.ClockCenterPoint.X=Convert.ToSingle(xn2.InnerText);
break;
case"ClockCenterPointY":
DefaultClock.ClockCenterPoint.Y=Convert.ToSingle(xn2.InnerText);
break;
case"TransparentColor":
DefaultClock.TransparentColor
=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);
break;
case"OpacityColor":
DefaultClock.OpacityColor=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);
break;
case"HourHardLong":
DefaultClock.HourHardLong=Convert.ToInt16(xn2.InnerText);
break;
case"MinuteHardLong":
DefaultClock.MinuteHardLong=Convert.ToInt16(xn2.InnerText);
break;
case"SecondHandLong":
DefaultClock.SecondHandLong=Convert.ToInt16(xn2.InnerText);
break;
case"HourHardColor":
DefaultClock.HourHardColor=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);
break;
case"MinuteHardColor":
DefaultClock.MinuteHardColor=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);
break;
case"SecondHardColor":
DefaultClock.SecondHardColor=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);
break;
case"CenterPointColor":
DefaultClock.CenterPointColor=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);
break;
case"DigitalDateColor":
DefaultClock.DigitalDateColor=System.Drawing.ColorTranslator.FromHtml(xn2.InnerText);
break;
default:
break;
}
}
}
}
}
运行后的效果如图所示:
图3钟表设计图
(2)隐藏功能实现:
privatevoid显示隐藏ToolStripMenuItem_Click(objectsender,EventArgse)
{
boolHS;
HS=显示隐藏ToolStripMenuItem.Checked;
if(!
HS)
{//隐藏
timer1.Enabled=false;
刷新ToolStripMenuItem.Enabled=false;
this.Hide();
}
else
{//显示
timer1.Enabled=true;
刷新ToolStripMenuItem.Enabled=true;
this.Show();
}
显示隐藏ToolStripMenuItem.Checked=!
HS;
}
(3)自启动功能设计
自启动功能主要实现该软件在计算机中安装成功后,可以设置开机自启动。
privatevoid自启动ToolStripMenuItem_Click(objectsender,EventArgse)
{
自启动ToolStripMenuItem.Checked=!
自启动ToolStripMenuItem.Checked;
AutoStartSwitch("MyClock",自启动ToolStripMenuItem.Checked);
}
(4)刷新功能设计
刷新功能主要实现,当样式修改后,可以刷新下界面进行系统重新装载。
publicvoid刷新ToolStripMenuItem_Click(objectsender,EventArgse)
{
timer1.Enabled=false;
this.Hide();
InitClockStyle();
//重新装入图片
image=newBitmap(Application.StartupPath+"\\skin\\"+DefaultClock.ClockName+".bmp");
this.ClientSize=newSize(image.Width,image.Height);
this.MinimumSize=this.ClientSize;
this.MaximumSize=newSize(image.Width+20,image.Height+40);
this.BackgroundImage=image;
EPGraphics=this.CreateGraphics();
EPGraphics.ResetTransform();
//重新设置窗体透明色
this.BackColor=DefaultClock.TransparentColor;
this.TransparencyKey=DefaultClock.OpacityColor;
//调节GDI的精细度
EPGraphics.SmoothingMode=SmoothingMode.AntiAlias;
EPGraphics.InterpolationMode=InterpolationMode.HighQualityBicubic;
EPGraphics.CompositingQuality=CompositingQuality.HighQuality;
//重新定位当前窗口的中心点
if(DefaultClock.ClockCenterLocation=="center")
{
Rectanglerect=newRectangle(0,0,this.ClientSize.Width,this.ClientSize.Height);
Pcenter=newPointF(rect.Width/2,rect.Height/2);
}
elseif(DefaultClock.ClockCenterLocation=="custom")
{
Rectanglerect=newRectangle(0,0,this.ClientSize.Width,this.ClientSize.Height);
Pcenter=newPointF(DefaultClock.ClockCenterPoint.X,DefaultClock.ClockCenterPoint.Y);
}
//重新移动坐标原点到中心
EPGraphics.TranslateTransform(Pcenter.X,Pcenter.Y,MatrixOrder.Append);
this.Show();
timer1.Enabled=true;
}
(5)边框显示功能设计
该功能主要是实现winform窗体的边框显示和隐藏。
privatevoid边框ToolStripMenuItem_Click_1(objectsender,EventArgse)
{
boolHS;
this.Hide();
//this.WindowState=FormWindowState.Minimized;
HS=边框ToolStripMenuItem.Checked;
if(HS)
{
this.TransparencyKey=DefaultClock.TransparentColor;
this.Refresh();
this.FormBorderStyle=FormBorderStyle.None;
this.button1.Visible=false;
}
else
{
this.TransparencyKey=DefaultClock.OpacityColor;
this.Refresh();
this.FormBorderStyle=FormBorderStyle.FixedToolWindow;
this.button1.Visible=true;
}
边框ToolStripMenuItem.Checked=!
HS;
this.Show();
}
有边框显示:
图4有边框钟表图
隐藏边框显示:
图5隐藏边框钟表图
(6)置顶功能设计
该功能主要实现将桌面钟表小软件置于桌面顶层显示。
privatevoid置顶ToolStripMenuItem_Click(objectsender,EventArgse)
{
boolHS;
HS=置顶ToolStripMenuItem.Checked;
if(!
HS)
this.TopMost=true;
else
this.TopMost=false;
置顶ToolStripMenuItem.Checked=!
HS;
}
(7)透明度功能设计
该软件透明度功能主要实现软件透明度的切换。
设计时设置了20%,50%,75%和100%等透明度级别,通过选取不同的透明度比例,效果也相应不同。
图6钟表透明度设置图
privatevoidtoolStripMenuItem4_Click(objectsender,EventArgse)
{
this.Opacity=.2;//20%透明度设置
toolStripMenuItem4.Checked=true;
toolStripMenuItem5.Checked=toolStripMenuItem6.Checked=toolStripMenuItem7.Checked=false;
}
privatevoidtoolStripMenuItem5_Click(objectsender,EventArgse)
{
this.Opacity=.5;//50%透明度设置
toolStripMenuItem5.Checked=true;
toolStripMenuItem4.Checked=toolStripMenuItem6.Checked=toolStripMenuItem7.Checked=false;
}
privatevoidtoolStripMenuItem6_Click(objectsender,EventArgse)
{
this.Opacity=.75;//75%透明度设置
toolStripMenuItem6.Checked=true;
toolStripMenuItem5.Checked=toolStripMenuItem4.Checked=toolStripMenuItem7.Checked=false;
}
privatevoidtoolStripMenuItem7_Click(objectsender,EventArgse)
{
this.Opacity=1;//100%透明度设置
toolStripMenuItem7.Checked=true;
toolStripMenuItem5.Checked=toolStripMenuItem6.Checked=toolStripMenuItem4.Checked=false;
}
透明度设置百分比:
图7钟表透明度设置图
透明度20%运行效果:
图8钟表透明度20%效果图
透明度50%运行效果:
图9钟表透明度50%效果图
透明度75%运行效果:
图10钟表透明度75%效果图
透明度100%运行效果:
图11钟表透明度100%效果图
(8)退出功能设计
实现退出软件应用窗口。
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
Application.Exit();
}
2、样式修改界面设计
该功能主要是对桌面钟表的样式进行修改,具体的功能界面如图所示:
图12钟表样式设置图
图13钟表样式设置图
具体的设计界面如图所示:
图14钟表样式设置样式图
该界面的设计布局主要由listbox控件,button按钮,lable标签,radioButton控件,下拉列表,numericUpDown控件,和textbox控件等组成。
(1)功能跳转
该功能界面通过点击主界面的设置功能按钮,系统自动跳转至设计窗口,代码实现如下所示:
privatevoid设置ToolStripMenuItem_Click(objectsender,EventArgse)
{
//显示设置窗口
Form2frm=newForm2();
frm.Show();
}
(2)设置界面子功能设计
<1>增加新样式
privatevoidbutton1_Click(objectsender,EventArgse)
{
StringNewClockStyle,NewClockName;
intN;
openFileDialog1.Filter="位图文件(*.bmp)|*.bmp";
openFileDialog1.Title="选择新的表盘样式文件";
openFileDialog1.FileName="";
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
NewClockStyle=openFileDialog1.FileName;
N=NewClockStyle.LastIndexOf("\\");
NewClockName=NewClockStyle.Substring(N+1,NewClockStyle.Length-N-5);
//复制该文件到skin目录下。
需要usingSystem.IO;
File.Copy(NewClockStyle,Application.StartupPath+"\\skin\\"+NewClockName+".bmp",true);
//为XML添加一个节点
XmlDocumentXmlDoc=newXmlDocument();
XmlDoc.Load(Application.StartupPath+"\\Clock.xml");
XmlNoderoot=XmlDoc.SelectSingleNode("ClockStyle");
XmlElementxe1=XmlDoc.CreateElement("clock");
xe1.SetAttribute("name",NewClockName);
xe1.SetAttribute("DefaultStyle","");
XmlElementxesub1=XmlDoc.CreateElement("ClockCenterLocation");
xesub1.InnerText="center";
xe1.AppendChild(xesub1);
XmlElementxesub2=XmlDoc.CreateElement("ClockCenterPointX");
xesub2.InnerText="0";
xe1.AppendChild(xesub2);
XmlElementxesub3=XmlDoc.CreateElement("ClockCenterPointY");
xesub3.InnerText="0";
xe1.AppendChild(xesub3);
XmlElementxesub4=XmlDoc.CreateElement("TransparentColor");
xesub4.InnerText="Green";
xe1.AppendChild(xesub4);
XmlElementxesub5=XmlDoc.CreateElement("OpacityColor");
xesub5.InnerText="White";
xe1.AppendChild(xesub5);
XmlElementxesub6=XmlDoc.CreateElement("HourHardLong");
xesub6.InnerText="70";
xe1.AppendChild(xesub6);
XmlElementxesub7=XmlDoc.CreateElement("MinuteHardLong");
xesub7.InnerText="85";
xe1.AppendChild(xesub7);
XmlElementxesub8=XmlDoc.CreateElement("SecondHandLong");
xesub8.InnerText="90";
xe1.AppendChild(xesub8);
XmlElementxesub9=XmlDoc.CreateElement("HourHardColor");
xesub9.InnerText="Black";
xe1.AppendChild(xesub9);
XmlElementxesub10=XmlDoc.CreateElement("MinuteHardColor");
xesub10.InnerText="Black";
xe1.AppendChil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 桌面 钟表
![提示](https://static.bdocx.com/images/bang_tan.gif)