WPF基础知识

总结的学习WPF的几点基础知识:

1) C#基础语法知识(或者其他.NET支持的语言):这个是当然的了,虽然WPF是XAML配置的,但是总还是要写代码的,相信各位读者应该也都有这个基础了。

2) HTML语言:虽然WPF是窗体程序但是由于使用的XAML语言,如果以前接触过HTML、XHTML、ASP.NET之路的东西的话会,接受这些标签会很有帮助的,如果以前一直是从事win form开的人来说可能就要适应一下了。

3) 对C#中的代理、事件要做到熟练掌握,在.NET 3.0 版本后有增加了Routed Events,要想日后不糊涂,这个是基础。

4) 有一定的winform或ASP.NET经验,主要是对控件事件的处理要有写了解。

5) 拥有良好的面向对象的思想:思想是语言的升华(本人的OO思想完全是Java中领悟来的)。在WPF中,经常要灵活运用各种继承关系、多态、重载等,因此一定要把基础知识打牢固。

6) DataBinding要有所了解:Binding是WPF的一大亮点,在接触它以前如果接触国ADO.NET里面的DataBinding的话对相对起来会容易接受一点,虽然这两个有一定的不同。

7) 对设计模式要有一定的了解:当然是越深入越好了,在实际项目中,各种设计模式经常交融使用。

快速的识别并合理的运用,无论是在开发还是调试时都是非常高效的。另外,WPF存在的初衷即是表现与逻辑的松耦合,最普遍的情况就是XAML作为表现层,背后.cs文件作为逻辑层。因此,日后在从事项目工作时,要时刻谨记这一点,千万不可背道而驰。

不要为了凸显自己的某一些代码特长而将各种逻辑混写在一起,这样非常不实际的,这一点都在校生应该尤为重要。

8) 对XML的理解:XAML也是XML,对XML的理解绝对有助于快速的接受和使用XAML,并不需要多XML有多么高深的见解。

但是最好还是有空看一看XML相关的书籍http://www.w3.org/TR/2000/WD-xml-2e-20000814。无论是WPF、WCP以及底层一些的SOAP等都是很有帮助的。

WPF中的布局观(Layout Philosophy):

在WPF窗体中,一个窗体只能持有一个控件,当多个控件想要在窗体中展现时,就需要首先设置一个容器控件(Container),然后将其他控件放到这个控件里面,形成树状结构.

因此,布局观第一条就是,控件的布局应该有容器来决定,而不是通过自身使用margin之类的东西来控制位置。因为这些属性原本应该是控制自己内部展现或与邻里之间关系的;

第二条,控件应避免明确的定义具体的尺寸,因为显示器分辨率及windows窗体的大小都有可能随时改变,如果明确的定义尺寸。当窗体变动后就会出现大面积的空白或是缺失。但为了控件功能及效果的展示,应该限定一个可接受的最大及最小尺寸。通过MinWidth, MinHeight, MaxWidth, MaxHeight属性可以实现这一点。

第三条,不要将界面元素位置设置成与屏幕坐标相关. 现在显示器分辨率比较多样话(800×600、1024×768),这样的做法还是比较有风险的。

第四条,容器应将有效空间共享给其子控件,这也是为了不在窗体调整后,遗留出大块的空余。

 第五条,容器嵌套使用,因为不同的容器,表现效果不同,必要时应结合使用.

详细请看:http://www.cnblogs.com/zcttxs/archive/2012/04/01/2428527.html

最新文章

  1. 开窗函数 First_Value 和 Last_Value
  2. Unique Paths II
  3. Java for LeetCode 207 Course Schedule【Medium】
  4. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行
  5. 【30】透彻了解inlining 的里里外外
  6. HttpClient 教程
  7. CDZSC_2015寒假新人(1)——基础 h
  8. wamp本地能访问,但局域网不能访问的解决办法
  9. HibernateSessionFactory类中Session对象的创建步骤
  10. Entity Framework 新手入门友好实例
  11. Hadoop hdfs上传文件 权限问题
  12. 查看和删除chrome浏览器缓存内容
  13. USB转串口驱动代码分析
  14. Python的下载及安装
  15. bzoj 4556 字符串
  16. mysql之表格的关联关系
  17. myelipse与maven结合配置
  18. JSON 转JAVA代码
  19. iOS基础知识之归档和解档
  20. iOS.AutoLayout.2.CustomView-with-AutoLayout

热门文章

  1. matplotlib学习日记(十)-共享绘图区域的坐标轴
  2. idea 中在src/main/java中的xml扫描不到问题
  3. 基于Python的接口自动化实战-基础篇之pymysql模块操作数据库
  4. ubutu14.04选中文本就会删除问题解决
  5. 风炫安全WEB安全学习第十九节课 XSS的漏洞基础知识和原理讲解
  6. 【MyBatis】MyBatis 注解开发
  7. 【剑指Offer】链表的基本操作之创建、插入、删除
  8. HBASE Shell基本命令
  9. 跟我一起学Redis之加个哨兵让主从复制更加高可用
  10. ps -p 进程号