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

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

  • 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# 一致, 所以大部分工作集中在, 如何能够熟练的将界面开发出来。

WPF 基础总结(学习建议)的更多相关文章

  1. 传智播客--WPF基础视频学习--sender解释(小白内容)

    sender是激发该事件的对象,如果用在Button的双击点击事件上的话,就是只当前点击的对象 用例子来说明一下,有两个Button控件,分别为1和2,同时绑定一个Button_Click事件 pri ...

  2. [WPF系列]从基础起步学习系列计划

    引言 WPF技术已经算不什么新技术,一搜一大把关于WPF基础甚至高级的内容.之前工作中一直使用winform所以一直没有深入学习WPF,这次因项目中使用了WPF技术来实现比较酷的展示界面.我在这里只是 ...

  3. C# WPF基础巩固

    时间如流水,只能流去不流回. 学历代表你的过去,能力代表你的现在,学习能力代表你的将来. 学无止境,精益求精. 一.写作目的 做C# WPF开发,无论是工作中即将使用,还是只应付跳槽面试,开发基础是非 ...

  4. aiku给你们最真心地学习建议--转

     aiku给你们最真心地学习建议: 以前我最开始的就搞驱动,后来发现要熟悉hal层,接着就硬着看hal代码,第一次看,很剧痛,慢慢的,看习惯了,就好了,后来发现,搞驱动的人,不懂hal,很多时候就定位 ...

  5. 韩天峰博客 php基础知识学习记录

    http://rango.swoole.com 写好PHP代码真的不容易,给大家几个建议: 慎用全局变量,全局变量不好管理的,会导致你的代码依赖于全局变量,而耦合度太高. 一定不要复制粘贴代码,可重用 ...

  6. C++学习建议

    C++学习建议 C++缺点之一,是相对许多语言复杂,而且难学难精.许多人说学习C语言只需一本K&R<C程序设计语言>即可,但C++书籍却是多不胜数.我是从C进入C++,皆是靠阅读自 ...

  7. Mybatis基础入门学习

    Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.ja ...

  8. Linux随笔-鸟哥Linux基础篇学习总结(全)

    Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...

  9. Objective-c基础知识学习笔记

    Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...

随机推荐

  1. 点击事件的坐标计算(client || offset) +(X || Width || Left) 各种排列组合别绕晕

    结论: 1,X,Y的都是属于点击位置的,width.height.left.top都是属于DOM的. 2,涉及的所有位置只与document或DOM内部有关,与DOM如何定位,周围有没有其他占位HTM ...

  2. 1042. Flower Planting With No Adjacent

    题意: 本题题意为: 寻找一个花园的涂色方案,要求 1.花园和花园之间,不能有路径连接的,不能涂成相同颜色的 一共有4中颜色,花园和花园之间,至多有三条路径 我菜了 - - ,又没做出来.. 看答案 ...

  3. gitlab设置项目组成员权限

    你敢相信这是个码农? setting菜单的“Members”功能页: 该页面展示了当前Project的成员列表,以及每个成员对应的权限角色,Owner/Master/Developer 注意到该页面顶 ...

  4. C# 第三方库

    基本上选用的都是 https://www.nuget.org 分类中最流行的那个库 1. 日志工具库 NLOG Stackify.com 简单入门文章  https://stackify.com/nl ...

  5. Angular 学习笔记(一)

    什么是 Angular: Angular 是一个 JavaScript 框架,可通过 <script> 标签添加到 HTML 页面,然后通过指令扩展 HTML,且通过表达式绑定数据到 HT ...

  6. python生产者和消费者模式实现(三)进程池方式

    注意:如果要使用Pool(进程池方式)创建进程,就需要使用multiprocessing.Manager()中的 Queue(),而不是multiprocessing.Queue() import t ...

  7. [MySQL] docker下安装使用mysql配置主从复制

    拉取mysql的镜像docker search mysqldocker pull mysql 通过镜像创建容器,这里先创建第一个容器作为master mysql-v /etc/mysql:/etc/m ...

  8. 学习CNN系列一:原理篇

    CNN的发展历程: 1962年,卷积神经网络的研究起源于Hubel和Wiesel研究毛脑皮层的发现局部互连网络可以有效降低反馈神经网络的复杂性. 1980年,CNN的第一个实现网络:Fukushima ...

  9. 杂项记录 arm64 的一些特性

    函数返回值:arm64 规定了整数型返回值放在 x0 寄存器里 sp(栈空间)字节对齐:该临时变量占用 4字节空间:又因为 arm64 下对于使用 sp 作为地址基址寻址的时候,必须要 16byte- ...

  10. mysql 插入表情数据报错

    mysql 插入表情数据报错 1.编码类型改成:utf8mb4 2.连接类型也要改成:utf8mb4_general_ci 3.在每个保存的前面执行一次 self.cursor.execute('SE ...