举个简单得例子, 类似造房子, 当然实际上可能非常细, 对应的如下所示:

在此之前, 需要了解的是。

  • WPF项目是怎么启动的
  • Xaml的结构是怎么样组成, 命名控件定义引用的方法。

知道了如何在Xaml中写代码, 尽管在此之前, 很多经验老道的Winform开发者也发现了, 打开工具箱, WPF的控件仍然像winform一样支持拖拽过来, 到某个位置, 然后在Xaml代码中,

就会生成对应的代码, 按下F4同样会展现出很多属性, 通过设置后, 所见即所得, 双击类似的普通按钮, 同样可以在后台生成事件代码。

WPF兼容了Winform原有的开发方式, 事件模型, 可能唯一的区别就是, 定义这类的事件和属性名称有些不一样, 需要自己去了解。

但是我不建议去直接拖动工具箱来构建应用的方式, 则主要是在Xaml中用手输入, 类似写Hmtl的方式, 因为在后期的开发中, 这将是你主要的开发方式, 首先得适应, 习惯。

新手容易遇到的问题

- 1. 最开始无从下手,但是由于不太熟练, 也没有合适得样例, 来让你进行尝试。
- 2. 心里没有底, 不知道到底是到哪种程度了, 就能够满足基础得开发 (大部分书籍都是1000+页) 如果要从头看下去, 那是不太可能得, 然后就放弃了。
- 3. 没有人引导你学习, 由于都是碎片化得学习, 无法掌握融合得技巧, 做不出东西感觉好像和Winform差不多, 导致半途而废, 甚至还想继续用Winform。

参考方法

- 1. 把winform原有的东西, 用WPF来进行一次一次还原, 这样, 不仅仅让你变得熟练, 还能直观的感受到两种的区别及优劣性, 一旦让你产生了 “卧槽,牛逼”。 那么接下来的工作就会变得很轻松了。
- 2. 先了解, 学习哪些东西, 可以快速让你进行项目开发, 这样, 在实践中, 出现问题, 再针对问题进行解决, 这样后期会发现, 无形之中, 你就掌握了这种技巧。
- 3. 在没人引导如何学习的情况下, 参考一些其他的软件界面, 然后自己尝试实现, 从布局、样式、一些触发器、动画一步一步进行。

可以让你快速学习的一些资料和途径

- 1. WPF编程宝典.pdf   (书的内容比较全, 建议可以选择跳过性的阅读 , 不懂得地方再翻)
- 2. 深入浅出.pdf (主要以实例为主)
- 3. 搜索一些简单的入门视频资料或者简单的项目, 文档比较丰富详细的, 进行下手。

练手素材(主要训练布局意识和熟练使用样式模板等)

下面提供一些入门的素材, 你可以参考图中的样式, 用WPF来把他们分别实现, 有些简单, 有些有点难度, 可以根据目前学习的进度选择性演练, 这些都是本人练过手的素材, 所以挑选出来, 比较锻炼熟练度的, 参考如下:











业务层的代码与C# 一致, 所以大部分工作集中在, 如何能够熟练的将界面开发出来。

最新文章

  1. 随机生成长度为len的密码,且包括大写、小写英文字母和数字
  2. Codeforces CF#628 Education 8 D. Magic Numbers
  3. Java_类似java.lang.VerifyError: Expecting a stackmap frame at branch target 22 in method的解决方法
  4. bootstrap走动的进度条
  5. No.022:Generate Parentheses
  6. wiseinstall 制做安装包小记
  7. 创建一个Table View
  8. Don't Repeat Yourself (不要重复你自己)
  9. C# - Lambda 表达式
  10. UIView与CALayer的区别,很详细
  11. 利用智能手机(Android)追踪一块磁铁(三)
  12. Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。
  13. 判断iframe页面是否加载完成
  14. SecureCRT在同一窗口打开多个标签
  15. 基于Spark自动扩展scikit-learn (spark-sklearn)(转载)
  16. WEB服务器----Apache 安装配置
  17. Spring security实现国际化问题
  18. Docker Basic
  19. U811.1接口EAI系列之六--物料上传--VB语言
  20. Java 类的生命周期

热门文章

  1. async/await简单使用
  2. BayaiM__SQLLDR 用法:
  3. ssh 使用指定网卡 连接特定网络
  4. Python—路由追踪(并生成追踪图片)
  5. windows宿主机和docker容器设置挂载共享文件夹
  6. 编译 lineageos 14.1 on OnePlus3
  7. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
  8. Node.js连接数据库取值,简单接口的实现
  9. (day52)四、视图层、模板层
  10. CF1249F Maximum Weight Subset