学习笔记
大巧不工
重剑无锋,大巧不工
展开
-
正反向数据库及生成设计报告
转自http://www.cnblogs.com/shishanyuan/archive/2011/11/04/2233897.html最近使用Power Designer 12 越发觉得这个工具的强大,特此总结共享给大家。共享主要是经常正向、反向数据库,以及每次手工写数据库设计说明书的工作可以让Power Designer来实现,而且生成的类型丰富、格式可自定义。转载 2012-11-07 17:27:47 · 939 阅读 · 0 评论 -
WPF图形系统——出自《IT168》
<br /><br /> 在Windows NT中,图形多媒体系统基于层次结构。应用程序与顶层的API(实际上是多个用户模式的系统DLL,比如GDI32.DLL)交互,这些系统DLL最终会通过系统服务调用处于内核模式的系统服务。NT系统的详细信息可参考《Windows 图形编程》的第一、二章。在Windows Vista中,图形系统已经移出了内核模式,并有自己的空间--WPF。 WPF移出内核除了全面提高稳定性(内核模式中通常需要共享资源),也使得实现内核模式高级控制成为可能。<br />原创 2010-12-06 17:28:00 · 461 阅读 · 0 评论 -
WPF中的传递事件——出自《IT168》
<br />传递事件<br /><br /> WPF在.NET简单事件通知之上添加了很多基础结构。传递事件的设计使得事件可以与元素树一起很好的工作。事件发生后,可以在视觉树和逻辑树自动地进行上下传递,我们不需要添加任何额外的代码。<br /><br /> 传递事件使得我们不需要过多关注于视觉树,这样封装对于我们理解WPF的元素合成非常重要。比如,我们点击一个按钮的事件,在点击的时候我们实际上点击的是一个ButtonChrome或者TextBlock,也就是说我们点击的是Button的内容原创 2010-12-07 11:17:00 · 893 阅读 · 0 评论 -
WPF中的命令与命令绑定——出自《IT168》
<br /> <br /><br /> 说到用户输入,可能我们更多地会联想到键盘、鼠标、手写笔,其实还用一种高级别的输入——命令(Commands),从WPF类库角度讲他们分别对于Keyboard, Mouse,Ink与ICommand。命令是一种语义级别的输入而不是设备级别的,比如“复制”与“粘贴”,但实现一个命令可以有很多中方式,比如“粘贴”,我们可以使用CTRL-V,也可以使用主菜单或右键菜单(上下文菜单)等等。在以往的.net版本中,要在软件界面上添加一个“粘贴”按钮,是非常麻烦的事情,你得原创 2010-12-07 10:28:00 · 562 阅读 · 0 评论 -
WPF的逻辑树和视觉树——出自《IT168》
<br /> <br />这部分的内容来自于即将出版的新书《WPF Unleashed》的第三章样章。关于什么是逻辑树,我们先看下面的一个伪XAML代码的例子:<br /><Window ......><StackPanel><Label>LabelText</Lable></StackPanel></Window> <br />在这样一个简单UI中,Window是一个根结点,它有一个子结点StackPanel。而StackPanel有一个子结点Label。注意Label 下还有一个子原创 2010-12-07 09:50:00 · 508 阅读 · 0 评论 -
WPF与Win32——《IT168》
GDI是当今应用程序的主流图形库,GDI图形系统已经形成了很多年。它提供了2D图形和文本功能,以及受限的图像处理功能。虽然在一些图形卡上支持部分GDI的加速,但是与当今主流的Direct3D加速相比还是很弱小。GDI+开始出现是在2001年,它引入了2D图形的反走样,浮点数坐标,渐变以及单个象素的Alpha支持,还支持多种图像格式。但是, GDI+没有任何的加速功能(全部是用软件实现)。 当前版本的WPF中,对一些Win32功能还没有很好的支持,比如WMF/EMF文件,单个象素宽度的线条等等。对于原创 2010-12-07 09:23:00 · 409 阅读 · 0 评论 -
WPF性能优化点——出自《IT168》
<br /> 在建立漂亮UI的同时,我们还需要关注应用程序的性能,WPF尤其如此。下面从MS的文档中总结出了一些有用的性能优化点。在实际编写的过程中,可以参考。这个Post非完全原创,是根据一些文档总结出来的。<br /><br /> 1、建立逻辑树的时候,尽量考虑从父结点到子结点的顺序构建。因为当逻辑树的一个结点发生变化时(比如添加或删除),它的父结点和所有的子结点都会激发Invalidation。我们应该避免不必要的Invalidation。<br /><br /> 2、当我原创 2010-12-06 17:49:00 · 387 阅读 · 0 评论 -
揭露WPF SDK“不能说的秘密——出自《IT168》
<br /><br />如果经历过.NET的1.0,1.1以及2.0版本,你就很可能发现.NET 3.0中的WPF区域中的一些文档有点不同。具体来说,WPF负责介绍几个CLR和托管代码封装方面的新概念。WPF SDK团队为在参考资料中展示这些新概念而做的努力是很大的进步,主要致力于改变,因为其它的技术也在它们的API中采用了相同或者类似的范例。<br /><br />System.Reflection和.NET 3.0 SDK <br /><br /> 微软用于创建托管SDK框架的“魔法”其实就是映原创 2010-12-06 17:22:00 · 448 阅读 · 0 评论 -
WPF中的控件模板(ControlTemplate)——出自《IT168》
<br /><br />WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和ItemsPanelTemplate,这里讨论一下ControlTemplate。<br /><br /> 其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观以及外观对外界刺激所做出的反应。我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件。<br /><br /> 与Style不同,Style只能改变控件的已有属性值(比如颜色字体)来定制控件,但控件模板可以原创 2010-12-06 16:08:00 · 337 阅读 · 0 评论 -
WPF指南之XAML的名字空间——出自《IT168》
<br /><br /> xmlns的作用是设置XML文件的命名空间。类似的,xmlns:x的作用也是指定命名空间。这里为什么是x而不是其他的,我们可以简单的理解为其只是MS的一个命名而已,没有任何特殊的意义,当然,为了避免和它的冲突,我们定义自己的命名空间的时候不能是x。<br /> 而另一个x:Class的作用就是支持当前Window所对应的类,前面已经说过每个XAML元素都是一个CLR类型,这里的x:Class是 Window的一个属性,属性的内容指出当前的窗口类是FirstXAML名原创 2010-12-07 17:14:00 · 431 阅读 · 0 评论 -
WPF性能优化点——出自《IT168》
<br /> 在建立漂亮UI的同时,我们还需要关注应用程序的性能,WPF尤其如此。下面从MS的文档中总结出了一些有用的性能优化点。在实际编写的过程中,可以参考。这个Post非完全原创,是根据一些文档总结出来的。<br /><br /> 1、建立逻辑树的时候,尽量考虑从父结点到子结点的顺序构建。因为当逻辑树的一个结点发生变化时(比如添加或删除),它的父结点和所有的子结点都会激发Invalidation。我们应该避免不必要的Invalidation。<br /><br /> 2、当我原创 2010-12-06 17:48:00 · 356 阅读 · 0 评论 -
WPF的Attached属性——出自《IT168》
<br /><br />本篇,我们再继续看一种特殊的Dependency属性:Attached属性。Attached属性可以非常高效地Attach到其他的对象中。<br />我们仍然用前面的一个简单XAML代码为例:<br /><Window><StackPanel><Label>LabelText</Lable></StackPanel></Window> <br /><br /> 现在,如果需要对StackPanel及其子元素设置字体大小,应该如何做呢?在Window元素中,原创 2010-12-07 13:56:00 · 548 阅读 · 0 评论 -
使用em
在如今这个提倡可用性设计以及用户体验设计的网络时代,CSS也是要一同参与其中的。大部分人在CSS代码编写中总是先对整体定义字体尺寸,中文情况下一般为12px,而其实这样以来在通过IE顶部菜单中的“察看-文字大小”设置已无任何作用。对字体感觉太小的浏览者而言无疑是种很不好的用户体验过程。其实这一切都可以避免,那就是使用em单位作为字体显示单位。浏览器的默认字体高都是16px,所以未经调整的浏览器在显示1em=16px。换算过来的话也就是说1px=0.0625em,也就是12px=0.75em, 1原创 2010-12-24 10:28:00 · 552 阅读 · 0 评论 -
WPF中,如何使用图像API进行绘制而不是XAML?——出自《IT168》
<br />首先,由于WPF中不象GDI+中有Graphics对象,因此你无法使用Graphics进行绘图了,取而代之的是:DrawingContext;类似地,GDI+中的OnPaint已被OnRender取代。其次,UIElement有一个OnRendar方法,它的定义是:<br />protected virtual void OnRender (DrawingContext drawingContext)<br />但我们不能直接调用OnRender方法,也不能直接创建DrawingCo原创 2010-12-09 14:52:00 · 744 阅读 · 0 评论 -
使用Grid来对WPF页面进行布局排版——出自《IT168》
对于以前用 Windows Form 来开发客户端程序的程序员,在使用 WPF 开发客户端的程序时,在窗体布局上将是他必须面对的一个坎。 布局产生困惑的一个典型场景如下: 我们在开发WPF窗体时候,我们会发现,当我们把菜单控件(Menu)、工具条(ToolBar、ToolBarPanel)、状态条(StatusBar)这些最常见的页面元素拖动到WPF窗体的时候。我们会发现 WPF 窗体中,这些页面元素可以放置在任何位置,而不是之前 Windows Form 那样:主菜单在最上面,状态条在原创 2010-12-09 10:44:00 · 793 阅读 · 0 评论 -
捕捉WPF应用程序中XAML代码解析异常——出自《IT168》
由于WPF应用程序中XAML代码在很多时候是运行时加载处理的。比如DynamicResource,但是在编译或者运行的过程中,编写的XAML代码很可能有错误,此时XAML代码解析器通常会抛出称为 XamlParseException的异常。但是抛出的XamlParseException异常提供的信息非常简单,或者是很不准确。此时我们关于通过对变通的方法来获取更多的异常信息: 我们知道,WPF应用程序中的XAML代码是在InitializeComponent方法中解析的。而这个方法通常位于窗口对原创 2010-12-09 10:02:00 · 497 阅读 · 0 评论 -
浅谈WPF中对控件的位图特效——出自《IT168》
<br /> 在WPF中,使用BitmapEffect对所有Visual对象进行位图特效处理(比如文本,按钮,图像,甚至矩形、画布等),它是基于像素级别的,而且是基于软件处理模式而非硬件加速的处理模式。<br />BitmapEffect在控件渲染时起作用,当控件渲染时,该Visual对象转化成相应的BitmapSource并作为BitmapEffect的输入,显示为经过BitmapEffect处理后的效果。<br />我们可以对控件进行以下几种常见的位图特效处理:<br />(1)虚化效果(BlurBit原创 2010-12-09 14:00:00 · 908 阅读 · 0 评论 -
WPF使用流文档灵活地显示内容——出自《IT168》
Windows® Presentation Foundation (WPF) 提供了一系列功能。事实上,功能是如此之多,以至于其中一些非常重要的功能都没有得到应有的关注。一个最好的例子就是“流文档”功能,它可让开发人员在 WPF 中本机创建文档。“流文档”针对屏幕显示以及提供更动态和可以论证的更复杂模型。“流文档”几乎适用于与文本内容相关的所有方面,从产品说明到整本书籍。 文本显示无疑是更重要的 UI 功能之一。在 WPF 界面中,您通常使用标签等控件来显示文本。但是在许多情形下,您需要的不只原创 2010-12-08 14:59:00 · 2764 阅读 · 0 评论 -
WPF中控件与控件值的绑定——出自《IT168》
<br />WPF支持以下几种绑定: <br />(1)控件到控件的绑定<br />(2)XML数据的绑定(含内联XML数据和外部XML文件数据) <br />(3).Net对象的数据绑定<br />(4)DataSet,DataTable等数据绑定<br />下面几篇中陆续说明这几种数据绑定的情况,希望对学习WPF的你有所裨益。<br /><br />1. 控件到控件的绑定<br /><Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/p原创 2010-12-09 14:35:00 · 676 阅读 · 0 评论 -
WPF中获取鼠标相对于屏幕的位置——出自《IT168》
<br />WPF 编程时,我们经常使用Mouse.GetPosition(IInputElement relativeTo)或MouseEventArgs.GetPosition(IInputElement relativeTo)来获取鼠标相对于某一界面元素的相对位置,这自然也联想到另外的一个问题:如何获取鼠标相对于屏幕的位置。 在WPF文档中找了半天也没找到。<br /><br />但我们别忘了 System.Windows.Forms.Control类中有一个静态属性 System.Windows.原创 2010-12-09 11:27:00 · 573 阅读 · 0 评论 -
WPF的Dependency Property System——出自《IT168》
<br /><br />今天我们来看看WPF的基础:DependencyProperty System。在WPF中,所有的属性(可以在XAML进行设置的属性)都依赖于此功能,所以说他是WPF的基础我想并不为过吧。.在WPF中,Dependency Property System为我们提供了一个访问XAML中设置的属性的入口,通过他我们可以为属性设置默认的值,设置属性的表达式、值的范围等,还可以通过他获得属性改变的事件。<br /> Dependency Property System在框架原创 2010-12-07 15:56:00 · 706 阅读 · 0 评论 -
WPF中的Style——出自《IT168》
<br />Style是一种修改属性值是方法。我们可以将其理解为对属性值的批处理。对批处理大家应该不会感到默认。对,通过Style我们可以批量修改属性的值。先从一个简单的Style例子开始:<br /><Window x:Class="Viewer3D.WindowSettins"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/20原创 2010-12-06 17:54:00 · 444 阅读 · 0 评论 -
WPF中的控件模板(ControlTemplate)——出自《IT168》
WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和ItemsPanelTemplate,这里讨论一下ControlTemplate。 其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观以及外观对外界刺激所做出的反应。我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件。 与Style不同,Style只能改变控件的已有属性值(比如颜色字体)来定制控件,但控件模板可以改变控件的内部结构(VisualTree,视觉树)来完成更为复杂的定制,原创 2010-12-06 16:04:00 · 348 阅读 · 0 评论 -
WPF指南之WPF的结构——出自《IT168》
WPF进入我们的生活已经有一段时间。个人认为在UI的实践中,用户需要的是易于操作的,更加绚丽的界面。这两个应该是最基本、也是最重要的宗旨。而对于开发人员就是要用最简单的方法开发出尽可能漂亮的界面,并且效率也不能太差。除了在一些Web开发和特殊的应用中,很少有开发组配备单独的美工,至少目前是这样吧!根据自己目前对WPF的了解程度,感觉WPF在其中某些方面确实有超强的震撼力。 客观上讲,Vista操作系统确实给我们带来了无可比拟的视觉效果。我自己深有体会,在近2个月的时间里每天都是在Vista下的开发原创 2010-12-03 17:12:00 · 368 阅读 · 0 评论 -
Javascript打开窗口
strOut=""; strOut+="/n"+" if (!window.opener || window.opener!=login&&window.name!=EIS)"; strOut+="/n"+" {"; strOut+="/n"+" window.opener = login;"; strOut+="/n"+" var fe原创 2009-02-27 10:43:00 · 508 阅读 · 0 评论 -
Oracle读取文件
Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性。其语法为:CREATE [OR REPLACE] DIRECTORY directory AS pathname;本案例具体创建如下:create or replace directory exp_dir as /tmp;转载 2009-02-21 17:31:00 · 4683 阅读 · 0 评论 -
FTP使用的内部命令
附录: FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息; -n 限制ftp的自动登录,即不使用;.n etrc文件; -d 使用调试方式; -g 取消全局文件名。 FTP使用的内部命令如下(中括号表示可选项): 1.![cmd[args]]:在本地机中执行交互s转载 2009-02-21 16:51:00 · 471 阅读 · 0 评论 -
ftp一个例子
从unix主机上自动备份数据到windows主机,并腾出unix主机空间。 1.autoftp.bat(注意脚本名别叫ftp.bat)echo ========================================== >> autoftp.logdate /t >> autoftp.logtime /t >> autoftp.logftp -n -s:"D:/g转载 2009-02-21 16:49:00 · 514 阅读 · 0 评论 -
ASP.NET 缓存(补充)
如何:从缓存中移除项时通知应用程序在大多数缓存方案中,当从缓存中移除项后,直到再次需要此项时,才需要将其放回缓存中。典型的开发模式是在使用项之前始终检查该项是否已在缓存中。如果项位于缓存中,则可以使用。如果不在缓存中,则应再次检索该项,然后将其添加回缓存。 但是,在某些情况下,如果从缓存中移除项时通知应用程序,可能非常有用。例如,您可能具有一个缓存的报告,创建该报告需花费大量的时间进行处理。当原创 2008-11-28 15:30:00 · 537 阅读 · 0 评论 -
ASP.NET 会话状态概述(补充)
状态序列化和反序列化 使用进程内模式时,对象作为各自类的活动实例存储在会话状态中。如果未发生真正的序列化和反序列化,则表示您实际上可以在 Session中存储您创建的任何对象(包括无法序列化的对象和 COM 对象),并且访问它们的开销也不会太高。如果您选择进程外状态提供程序,又是另外一种情况。 在进程外体系结构中,会话值将从本地存储介质(外部 AppDomain 数据库)复制原创 2008-11-27 17:45:00 · 562 阅读 · 0 评论 -
ASP.NET 会话状态概述(msdn)
可使用 ASP.NET 会话状态存储和检索用户的值。当用户在 Web 应用程序中导航 ASP.NET 页时,ASP.NET 会话状态使您能够存储和检索用户的值。HTTP是一种无状态协议。这意味着 Web 服务器会将针对页面的每个 HTTP请求作为独立的请求进行处理。服务器不会保留以前的请求过程中所使用的变量值的任何信息。ASP.NET会话状态将来自限定时间范围内的同一浏览器的请求标识为原创 2008-11-27 11:17:00 · 710 阅读 · 0 评论 -
ASP.NET Cookie 概述(msdn)
Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。方案 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法。例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息。当该用户再次访问您的原创 2008-11-26 13:55:00 · 592 阅读 · 0 评论 -
HTTP 处理程序和 HTTP 模块概述——附记
IHttpHandler IsReusable Property There isnt much clearinfo regarding this property on the net. It can be better in terms ofperformance when the property is set to true, but can cause someheadac原创 2008-11-18 09:43:00 · 659 阅读 · 0 评论 -
Ajax直接返回xml流,并应用于xslt
处理页面: String name = Request.QueryString["zfname"].ToString(); DataSet myData = new DataSet(); myData.ReadXml(Server.MapPath("~/XML/zcfg.xml")); DataRow[] row = myData.Ta原创 2009-03-08 10:55:00 · 888 阅读 · 0 评论 -
Ajax并应用于xslt的服务器端的转换
处理页面: XslCompiledTransform xslDoc = new XslCompiledTransform(); xslDoc.Load(Server.MapPath("~/XSL/XSLZcfgSub.xsl")); xslDoc.Transform(Server.MapPath("~/XML/ZcfgSub.xml"), null, Res原创 2009-03-08 11:45:00 · 435 阅读 · 0 评论 -
WPF开发简介——出自《IT168》
要赢得世界,必须在恰当的时间做出恰当的事。这一点,微软做到了。历经微软DOS,Win 31, Win95, Win 98, Win 2k, WinXP, 一路走来,一次比一次热闹,一个比一个精彩、炫丽。Vista的宣传更是轰轰烈烈,喧嚣日上。Microsoft总是有能力在恰当的时间制造出意料中的轰动,Vista一经推出便让IT业界趋之若鹜。 一、掀起你的盖头来,让我看看你的脸——.NET Framework 3.0 与微软对Vista锣鼓宣天的推广相比,对与之相伴的.原创 2010-12-03 14:49:00 · 918 阅读 · 0 评论 -
利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准标签控制
利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准的、有语意的HTML页面 CSS 样式表控制。例如,Menu、TreeView等控件均将输出标签,而基于Web标准中的“有语意的”这一条,显然应该选择标签。而使用CSS Friendly Control Adapters 会将其转为使用嵌套的标签渲染,这被称为纯CSS menu(转载 2010-03-02 15:29:00 · 627 阅读 · 0 评论 -
ie和firefox下javascript创建xml对象
<!-- function createXmlObject(){ var xmldoc = false ; //判断是否为firefox或ie var moz = (typeof document.implementation != undefined) && (typeof document.implementation.createDocument !转载 2009-10-21 22:38:00 · 2035 阅读 · 1 评论 -
Event.observe和Event.stopObserving
var ClassA = Class.create();ClassA.prototype = {initialize : function(){},observe : function(){Event.observe($(’span’),’click’,this._handlerA.bind(this));Event.observe($(’span’),’click’,this转载 2009-10-16 16:22:00 · 1311 阅读 · 0 评论 -
javaScript随笔
2009-10-12 今天在用这个标签,网上看了点例子,发现“display:inline”和"float:left"都可以实现元素的横向排列,但是“display:inline”只是硬性将所以的元素横向排列;"float:left"当超过容器横向大小的时候可以自动换行。 关于xslt原创 2009-10-12 09:53:00 · 352 阅读 · 0 评论