基于WPF技术的教学信息查询系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于WPF技术的教学信息查询系统设计与实现
曲广强;关晓辉;杨永清;刘冬云;孙悦
【摘要】WPF( Windows Presentation Foundation)是微软新一代图形系统,它所带来的震撼视觉效果和用户新体验,使图形的显示更绚丽多彩。
本文以WPF技术为基础,利用Visual Studio提供的窗体开发组件,完成了基于WPF的教务信
息查询系统的设计与实现。
文中对于开发过程中所遇到的多数据源问题、界面开发、动画设计、数据查询等问题进行了重点的阐述。
%WPF ( Windows Presentation Foundation) is Microsoft ' s new generation of graphics system, its shock
of visual effect and the user’ s new experience,make graphical display more gorgeously. The system com-pleted the design of the educational administration information inquiry system based on WPF technology, through using the development components of windows forms. In this paper,for multiple sources,interface de-velopment,animation design,data query and other problems faced in the development process are mainly
de-scribed.
【期刊名称】《东北电力大学学报》
【年(卷),期】2014(000)006
【总页数】5页(P105-109)
【关键词】WPF;C#;XMAL;多数据源
【作者】曲广强;关晓辉;杨永清;刘冬云;孙悦
【作者单位】东北电力大学教务处,吉林吉林132012;东北电力大学教务处,吉
林吉林132012;东北电力大学教务处,吉林吉林132012;东北电力大学教务处,吉林吉林132012;东北电力大学教务处,吉林吉林132012
【正文语种】中文
【中图分类】TP393.29
高校教学管理信息量大、覆盖面广,为了方便及时与广大师生交流信息,我们开发了一套基于多媒体电子触摸屏的“高校教学管理信息查询系统”,以往学生在教学楼内需要通过纸质课表或者逐个教室查找才能了解上课情况以及找到空闲教室,通过在教学楼大厅放置的触摸屏以及教学信息查询系统,广大师生可快捷地查到所需要的信息。
WPF为Windows Presentation Foundation的缩写,意思是基于windows的
图形界面处理,WPF[1]是微软新一代图形系统,运行在.NET Framework 3.0架
构下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。
基
于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。
程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。
WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持flow text support,3D视觉效果和强大无比的控件模型框架。
2.1 系统的功能设计
系统的主要服务对象为全校师生,根据用户的使用需求并结合教务系统的实际情况,系统的主要功能模块如图1所示。
“二教课程查询”和“三教课程查询”模块可以为师生提供第二教学楼和第三教学
楼每个教室的课程信息,包括上课时间和上课教师信息;“课程课表查询”模块可以根据每一门课程查询该课程的上课教室、任课老师及开课时间;“我要上自习”模块专门为要上自习的学生提供支持,可快捷地找到当天第二教学楼和第三教学楼空余教室的信息,见图1。
2.2 系统的结构设计
高校教学信息查询系统主要由触摸屏、Web服务和数据库三部分组成。
我校的触摸屏教学信息查询系统通过触摸屏内的软件系统,访问远程的Web服务器,通过网络即时地将数据库的信息提取出来,显示在触摸屏屏幕上,用户可以手动点击进行各种信息[2]的查询。
3.1 源数据的获取
根据本系统的功能设计要求,系统需要从教务管理系统读取数据。
根据安全性、可靠性和低耦合原则,系统不应从其他应用系统直接读取数据库,而应该选择使用一定的中间接口,如WebService。
本系统采用微软的Windows Communication Foundation(WCF)技术,为现有的教务管理系统开发了数据接口。
WCF是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分,由.NET Framework 3.0开始引入。
WCF集合了大部分.NET Framework所提供的通信方式(如Web Service、.NET Remoting以及最基础的 Winsock 等通信技术),通信双方的沟通方式,由合约来订定。
通信双方所遵循的通信方法,由协议绑定来订定。
通信期间的安全性,由双方约定的安全性层次来订定[3]。
3.2 界面的开发
WPF借助 XAML 来利用标记而不是编程语言(如 C#)来构造精美逼真的用户界面(UI)。
可以通过定义控件、文本、图像、形状、动画等各种元素,完全采用 XAML 来制作详尽的 UI 文档。
XAML简化了.Net Framework 3.0 编程模式上的用户界面创建过程,使用XAML 开发人员可以对WPF程序的所有用户界面元素(例如文本、按钮、图像和列表框等)进行详细的定置,同时还可以对整个界面进行合理化的布局,这与使用HTML[4]非常相似。
但是由于XAML是基于XML的,所以它本身就是一个组织良好的XML文档,而且相对于HTML,它的语法更严谨、更明确。
<Button Name="btnsanjiao" Width="160px" Height="50px" Opacity="0" Click="btnsanjiao_Click" >
<Button.RenderTransform>
<TransformGroup>
<RotateTransform Angle="11.154"/>
<TranslateTransform/>
</TransformGroup>
</Button.RenderTransform>
</Button>
该代码片断是一个XAML元素,它包括一个开始标记、一个结束标记以及这两个标记之间的内容。
在第1行代码处的开始标记中还包含了两个属性,这两个属性的名称分别为Name,Width,Height,Opacity 和Click。
我们可以通过"="号给这些属性赋与一个相应的值,根据XAML的语法规则,这些属性值必须使用双引号包括起来。
开始标记和结束标记之间则是元素内容。
尽管XAML在元素的声明、程序样式的设置和指定事件处理程序上都和HTML非常类似,但是XAML是基于XML的,它是WPF的外在表现形式。
而HTML主要是一种标记语言,仅仅是用来为浏览器呈现页面内容。
3.3 动画的设计
WPF最重要的特色是对于矢量图的超强特性,具有灵活、易扩展的动画机制。
兼
容支持2D绘图,比如矩形、自定义路径,位图等。
文字显示的增强,XPS和消锯齿。
三维强大的支持。
包括3D控件级及事件,与2D及视频合并打造更立体效果。
<BeginStoryboard>
<Storyboard x:Name="storyContents">
<MatrixAnimationUsingPath x:Name="ma2"
Storyboard.TargetName="mt2" Storyboard.TargetProperty="Matrix" Duration="0:0:2" >
<MatrixAnimationUsingPath.PathGeometry>
<PathGeometry Figures="M-400,0 L-400,0 0,0 L0,0 -70,0 L-70,0 0,0 L0,0 -40,0 L-40,0 0,0 L0,0 -20,0 L-20,0 0,0">
</PathGeometry>
</MatrixAnimationUsingPath.PathGeometry>
</MatrixAnimationUsingPath>
</Storyboard>
</BeginStoryboard>
这段代码是一个字符浮动的动画。
<TextBlock.Triggers>表示TextBlock的触发
事件,RoutedEvent="Button.Click" 表示当鼠标按钮按下时触发TextBlock的触发事件,去执行特定的动画效果。
3.4 数据的查询
(1)教室信息的查询。
这里仅以“三教教室课表查询”为例,查询当天全课时每一
个教室的课程安排,并以图形的形式展现给师生,一目了然。
主要查询代码如下:RoomInfoWeb.RoomInfoSoapClient room = new
RoomInfoWeb.RoomInfoSoapClient();
RoomInfoWeb.DC_ClassRoom[] cl =
room.GetAvailableRoomByBuildingName("三教",Timepart);
foreach (RoomInfoWeb.DC_ClassRoom ls in cl)
{string s = "pic" +ls.RoomName;
Imageimage = grid11.FindName(s) as Image;
if (image != null){
BitmapImage brush2 = new BitmapImage(new Uri("../触摸屏课程查询系统/images/二教8.png",UriKind.Absolute));
image.Source = brush2;
}
(2)课程课表查询。
课程课表查询可以查找全校全部开课课程的具体信息,如“ERP沙盘模拟实验”,当您在屏幕键盘上按下E时,屏幕上会显示,以E汉语拼音开头的所有课程,然后点击具体课程如“ERP沙盘模拟实验”,屏幕会弹出一个窗口,显示开课时间,开课教室和开课老师等信息。
以下为本界面中按钮事件代替鼠标滚动事件的主要技术代码:
[DllImport("user32.dll")]
static extern voidmouse_event(int flags,int dX,int dY,int buttons,int extraInfo);
const int MOUSEEVENTF_WHEEL = 0x800;
private voidbtn_up_Click(object sender,RoutedEventArgs e) {ScrollViewer sv= FindVisualChildByName<ScrollViewer>(dgview,
"DG_ScrollViewer");
sv.ScrollToVerticalOffset(sv.VerticalOffset -1.0);}
private voidbtn_down_Click(object sender,RoutedEventArgs e) {ScrollViewer sv = FindVisualChildByName<ScrollViewer>(dgview,
"DG_ScrollViewer");
sv.ScrollToVerticalOffset( sv.VerticalOffset +1.0);}
(3)我要上自习。
这个功能是特别为需要上自习的学生而设计的,学生可以根据自
己的具体情况,选择需要上自习的时间和教学楼,就能很快的找到相应时间段内的空闲教室信息。
以下是本界面中文字浮动的关键技术代码:
<BeginStoryboard>
<Storyboard x:Name="storyContents">
<MatrixAnimationUsingPath
x:Name="ma2"Storyboard.TargetName="mt2" Storyboard.TargetProperty ="Matrix" Duration="0:0:2" >
<MatrixAnimationUsingPath.PathGeometry>
<PathGeometry Figures="M-400,0 L-400,0 0,0 L0,0 -70,0 L-70,0 0,0 L0,0 -40,0 L-40,0 0,0 L0,0 -20,0 L-20,0 0,0">
</PathGeometry>
</MatrixAnimationUsingPath.PathGeometry>
</MatrixAnimationUsingPath>
</Storyboard>
</BeginStoryboard>
3.5 天气预报的查询
为了方便师生的出行,该系统还设有天气预报查询的功能,实时更新当天的天气情况。
天气预报功能是根据调用外网的服务实现的,具体实现方法如下。
(1)getSupportCity
查询本天气预报Web Services支持的国内外城市或地区信息。
输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返
回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市
代码)。
(2)getSupportProvince
获得本天气预报Web Services支持的洲、国内外省份和城市信息。
输入参数:无;返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。
(3)getWeatherbyCityName
根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数。
调用方法如下:输入参数:theCityName = 城市中文名称(国外城市可用英文)或
城市代码(不输入默认为上海市),如:上海或 58367,如有城市名称重复请使用
城市代码查询(可通过getSupportCity 或getSupportDataSet 获得);返回数据:一个一维数组 String(22),共有23个元素。
4 结束语
该系统投入运行后,可以在相关教学楼全天候安全运行,速度快,稳定可靠,信息传递迅速、准确,查询方便、使用灵活,提高了教学管理工作效率,系统经过几年的使用得到了广大师生的一致好评。
【相关文献】
[1] 李响.葵花宝典—WPF自学手册[M].北京:电子工业出版社.
[2] 姜瀚书,梁峰,于旭.数字化变电站集成保护信息共享通信特性分析研究[J].东北电力大学学报,2014,34(2):66-67.
[3] 〔美〕麦克默蒂等.WCF揭秘[M].赵科平,译.北京:人民邮电出版社,2008:11-16.
[4] 杨波,马秉尧,孙润元,等.基于WAP的校园信息服务系统设计与实现[J].大连理工大学学报,2005,45(z1):291-294.。