谨以此文纪念被微软鄙视3个月。.NET三个方向,高层玩开源架构,中层玩各个封装的命名空间(如序列化,webservices,remoting,threading等等),底层玩CLR,总之后者是我最薄弱的地方,要花一定气力去攻克。本笔记主要依赖于 《C#框架设计CLR》一书,24章。 Read More
刚刚和wso_angel在QQ上通了话,他给我讲了翻译FlexWiki中的一些心得,以及这套开源系统的一些知识。于是,我下决心,开始在BLOG上研究这套源码了。其实只有FlexWiki.Web和FlexWikiEngine在用,因为是基于文件存取的,所以不需要DB操作。这是微软的两个牛人写的,看样子是没有写完,所以很多地方没有实现,但Wiki的思想已经全都有了。一方面,我准备先画UML大图和类继承... Read More
这个也说模式,那个也说模式,老实说,没有一个把全部23个都讲明白的,除了GOF,毕竟人家是合写,每人写他最拿手的几个,所以人家那本书成功了;至于其他人,大多是只精通其中几个,于是就出书了,他那些不熟的模式就到网上抄一抄人家的,抄得好还可以,至少读者能看懂,抄得不好——不说了,跑题了。 最近在公司和老虎还有Will每周讨论几个模式,他俩是做c++的,我是做c#的,差别很多,但是在对模式的认识上,只要... Read More
2.9讲的是,如果内部设定超过容器大小,怎么办?StackPanel会裁剪越界部分DockPanel和Grid会智能判断,从而决定换行。 2.10 自定义布局容器自定义容器要实现两个方法MeasureOverride和ArrangeOverride,并保证遍历其下的所有子控件,使他们都执行Measure和Arrange方法。 using System;using System.Windows.C... Read More
这一节介绍的是文字布局的几个控件:1.TextBlock 最基本的文字控件可以配置5个Font属性。TextWraping属性,"Wrap"是换行,NoWrap是不换行(原书有误,在此更正)。TextBlock控件内可以放置很多控件,不光是文字。 Split across multiple lines AccessText,Bold,Hyperlink,Ital... Read More
在Canvas外面包一层ViewBox,可以使Canvas内的控件填充整个ViewBox,并随着ViewBox的大小变化而同步变化,这是因为ViewBox默认属性Stretch=“Uniform”。Stretch有四个属性:Uniform,Fill(为了填充甚至会拉伸),None(无效果,相当于没有用ViewBox),UniformToFill(如果Canvas大于ViewBox大小则裁剪)老实说... Read More
Canvas是最精确的布局容器——绝对定位,此书作者不建议使用,以为控件的大小一般会随着内部字体图片的动态生成而自动变化,所以使用前三种布局是最好的选择,在这一点上,我也持同样意见。Canvas使用Top/Bottom属性控制距离顶部/底部的高度;使用Left/Right属性控制距离左/右的距离。有趣的是,调整Form的大小,第二个TextBlock的位置会相应变化,但和底部以及右边的距离是不变的... Read More