GUI(Graphics User Interface)图形用户界面历史
1、Win API时代,函数调用Windows消息处理
-
Win API:Windows API,调用Windows底层绘图函数,使用C语言,最原始也最基础。
2、封装时代,封装Win API成类
-
MFC,Microsoft Foundation Class:使用C++将原始的Win32 API函数封装成控件类库
-
VCL:Visual Component Library,Delphi和C++ Builder使用的与MFC类似的控件类库
3、组件化时代,消息被封装成事件,事件驱动
-
VB6:Visual Basic + ActiveX控件:使用组件化思想把Win API封装成UI控件,供多语言使用
-
Java Swing/AWP:Java SDK中使用的开发GUI程序的控件类库
-
WinForm:Windows Form:.NET平台进行GUI开发的传统方式
4、WPF时代
-
WPF:Windows Presentation Foundation
WPF控件分类
1、布局控件
2、内容控件
3、带标题的内容控件
4、条目控件(ItemsControl)
5、带标题的条目控件
6、特殊内容控件(TextBox、TextBlock等)
WPF系统控件派生图:黄色文字部分为抽象类
VisualTreeHelper类可以在可视化树上找到对应的元素
以下布局元素Grid可以接受的宽度和高度单位,默认单位是像素(Pixel)
电脑显示器一般是72dpi(Dots Per Inch,每英寸像素点数),
注意:以下结果在2560*1080显示器上获取,点距0.2628mm
|
英文名称 |
中文名称 |
简写 |
换算 |
|
Pixel |
像素 |
px(默认) |
图形基本单位 |
|
Inch |
英寸 |
in |
1英寸=96像素=2.54厘米 |
|
Centimeter |
厘米 |
cm |
1厘米=96/2.54像素=37.795像素 |
|
Point |
点 |
pt |
1pt=1.33333像素 |
勘误:
书中提到的一些知识点有误,如
实际上这两个元素是决定StackPanel本身在水平和垂直方向的对齐方式,也有可能是xaml版本的问题(我现在使用的是vs2015以上版本,StackPanel的VerticalAlignment和HorizontalAlignment默认值都是Stretch)
Visibility.Collapsed:如果把一个元素从Visible改为Collapsed,元素所占的位置会释放,其他元素可以自动填充到该元素的位置(使用StackPanel作为容器),官方解释:Do not display the element, and do not reserve space for it in layout.
Visibility.Hidden:如果把一个元素从Visible改为Hidden,元素所占的位置不会释放,其他元素不会自动填充到该元素的位置(使用StackPanel作为容器),官方解释:Do not display the element, but reserve space for the element in layout.