01 2012 档案
摘要:XML序列化与反序列化 整理文档 XML序列化与反序列化 // OBJECT -> XML public static void SaveXml(string filePath, object obj) { SaveXml(filePath, obj, obj.GetType()); } public static void SaveXml(string filePath, object obj, System.Type type) { using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath))
阅读全文
摘要:界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。目前界面的设计引起软件设计人员的重视的程度还远远不够,直到最近网页制作的兴起,才受到专家的青睐。而且设计良好的界面由于需要具有艺术美的天赋而遭拒绝。 目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,以下规则是应该被重视的。1:易用性:按钮名.
阅读全文
摘要:以前发表过《通过监听Windows消息对复合控件进行整体控制(C#)一 》两篇,讲述了通过FrameWork框架提供的技术监听Windows消息来实现事件的路由,但部分实现并不是很好,而且有部分功能并不能很好解决控件的事件,此篇通过对原方法进行改写,有些实现通过调用Windows API辅助解决,基本上解决了控件的键盘和鼠标事件的路由。(JS和WPF有事件路由的功能) 实现 IMessageFilter 接口 和 注册控件的鼠标和键盘事件等对外接口请参考《通过监听Windows消息对复合控件进行整体控制(C#)一 》,内部的实现通过使用Windows API 使代码更严谨和清晰。 使用到的部.
阅读全文
摘要:You've been tinkering with threading. Drag+Drop doesn't like threads. It will only work on threads that are properly initialized with Thread.SetApartmentState() to select STA and that pump a message loop with Application.Run() or Form.ShowDialog().1、加[STAThread]2、Thread t = new Thread(new Th
阅读全文
摘要:因为有个地方判断图像的格式,原先是通过Image类来判断,觉得不是很好,上网查找了通过文件头2个字节来判断,可原文不是很好,有些地方不对,现把修改后的代码上传以供大家复制。 /// <summary> /// 实现通过文件头2个字节判断图片的格式。 /// </summary> public class ImageTypeCheck { static ImageTypeCheck() { _imageTag = InitImageTag(); } private static SortedDictionary<int, ImageType> _imageTa
阅读全文