【问题标题】:How to begin WPF development?如何开始 WPF 开发?
【发布时间】:2010-09-12 21:17:25
【问题描述】:

我从 .NET 1.1 开始就一直在使用 Winforms,我想开始学习 WPF。

我正在为 WPF 的初学者寻找一些好的资源。我应该阅读什么,我需要什么工具,我应该遵循哪些最佳实践?

【问题讨论】:

    标签: .net wpf .net-3.5


    【解决方案1】:

    请查看this StackOverflow post,其中包含书籍推荐列表。

    在最佳实践方面,请熟悉M-V-VM pattern。它似乎在 WPF 领域获得了最大的关注。

    查看this post,了解可用于 WPF 开发的工具。

    MSDN Forum 是获取资源的好地方,WPF 上的 MSDN 帮助文件也是如此。

    我个人的建议是让你忘记你所学到的关于 WinForms 的一切。 WPF 是一个完全不同的模型,一旦我最终放弃了“我在 WinForms 中这样做,但这种方式在 WPF 中不起作用”,我就有了一个“灯泡”时刻。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      学习曲线很高,但那里有很多非常好的资源。而且,MSDN 文档和 SDK 示例(正如一些已经提到的)非常好。

      不过,对您有所帮助的一件事就是提前承认学习曲线,并且在没有意义时不要气馁。在你可以做一些基本的事情之前,确实有很多概念需要“理解”。

      已经提到的 WPF 书籍都有其独特的价值。我的个人经验是,我首先获得了一份WPF Unleashed,但尝试阅读却无济于事。直到我拿起 Charles Petzold 的 Application = Code + Markup 并阅读了其中的一些内容......我才开始理解 WPF Unleashed。然而,我的大脑需要细节才能真正融入概念......

      Tim Sneath 有一个优秀的 WPF 博主列表,我发现这些博主对加入 WPF 社区很有价值: WPF Bloggers

      我的必读列表中有几个博客:

      我要做的另一件事是获取 Dr. WPF 的 sn-p 库(位于 here)。这是学习一些基本管道类型概念(如依赖属性、路由事件和路由命令)的极好方法。

      最后,我将获得一份 Blend(v2.5 仍处于测试阶段且免费)并使用它来生成 xaml,然后深入研究生成的 xaml 以了解您在 Blend 中所做的事情,映射到 WPF API。

      希望这会有所帮助。祝你好运。

      【讨论】:

      • Charles Petzold 的“应用程序 = 代码 + 标记”有一些关于拉皮条控件的精彩章节。我不记得它是组合框还是其他带有子项的控件,但是有描述如何使子项以圆圈而不是正常的下拉方式出现。如果您向更高的权力展示这一点,他们会“哇”并为您提供金钱预算:)
      【解决方案3】:

      1 开始了解 XAML 和控件层次结构 - UI 标记以及围绕它的新术语和功能。 KaXaml是学习XAML的好工具,免费下载http://www.kaxaml.com/

      2 由于您已经拥有长期的 .NET 经验,因此请直接转到 SDK 示例并开始在其中运行,看看发生了什么,请使用 XAML。 http://msdn.microsoft.com/en-us/library/ms771449.aspx

      3 如果您正在寻找博客资源,这是我最好的建议

      但是选择一个您已经实现或在某处看到的简单 UI 场景并尝试在 WPF 中实现它 - 这可能是学习新技术的最佳方法。

      请不要害怕 MVVM,等你熟悉了 WPF 平台和 XAML 之后,这些东西就会派上用场。

      【讨论】:

        【解决方案4】:

        Adam Nathan 的 - WPF Unleashed,书非常好。

        【讨论】:

          【解决方案5】:

          我会推荐 Adam Nathan 的书 Windows Presentation Foundation Unleashed

          那么我建议你编写一个应用程序。与其他所有开发环境一样,没有完美的指导方针。你必须找到对你的情况最有意义的那些。唯一的办法就是开始编码。

          至于工具,Visual Studio 2008 [Express] 是您的最佳选择。或者,您也许可以与 XamlPad 一起跛行。

          【讨论】:

          • 我读过 WPF Unleashed 和 Teach Yourself in 24 Hours。我更喜欢自学。
          【解决方案6】:

          我还强烈建议将 Blend 与 VS 2008 一起使用。Blend 非常适合创建动画。

          Blend 2.5 Preview可以免费下载。

          我喜欢Designer WPF Blog,它有一些关于如何在 Blend 中执行 WPF 的很好的教程。

          【讨论】:

            【解决方案7】:

            虽然上面已经列出,但我想重申一点。

            Kaxaml 是最好的松散 xaml 编辑器。它有一个 sn-p 库、IntelliSense、拆分视图、一个 xaml 清理器(漂亮的打印)等等。

            我只希望我们可以连接一些程序集(您可以从 xaml 中引用)...

            罗比·英格布雷森,你摇滚。

            【讨论】:

              【解决方案8】:

              我还谦虚地建议看看我的博客2,000 Things You Should Know About WPF,我每天都会在其中发布一条关于 WPF 的信息。该博客从基本原则开始,然后逐渐进入更高级的主题,因此作为初学者,这是一个很好的起点。

              【讨论】:

                【解决方案9】:

                掌握 WPF(和 silverlight,以及基本上任何基于矢量的 XAML .net 富 UI 框架)需要的不仅仅是理解新的开发概念(还有很多)。完全理解依赖属性、附加属性、模板、数据绑定、样式、MVVM、布局机制、视觉状态和部件、效果、路由事件是不够的......要真正了解你的方式,你需要了解一些基本的图形中的概念(例如矢量图形、光栅图形、渲染、分层图形技术、动画、像素着色器、渐变、几何、路径、画笔、变换矩阵等)。除此之外,您还需要学习和理解 M-V-VM,这不仅仅是一种新的设计模式——它是一种全新的编程范式。所以有很多东西要学……而问题是,无论你选择哪个起点,你总觉得少了点什么。

                我尝试了几本书作为起点,其中许多让我很困惑。然后我找到了 Daniel M. Solis 的“Illustrated WPF”,这个对我有用。他以开发人员清楚的方式解释图形世界中的概念,然后教授基于 XAML 的 UI 的所有新概念,同时通过演示轻松触及每个主题并深入研究特定主题。只需按照教程,您就会发现您学到了很多东西,更重要的是,消除了恐惧因素。

                一旦您掌握了这一点,您就可以继续阅读 Adam Nathan 的“WPF Unleashed”并深入了解。这个让您对 WPF 独有的概念有更深入的了解,我相信一旦您至少看过每个功能一次,您就有更好的机会理解这些概念。它们都以某种方式相互完善,只有在一起才有意义。

                在那之后你还有很多东西要学,但此时你可以开发丰富的应用程序并随时学习新的主题......

                享受:-)

                【讨论】:

                  【解决方案10】:

                  Visual Studio 2008(有免费的 Express 版本)。这就是您需要的所有工具。

                  然后尝试一些操作指南视频。这是一个好的开始:http://windowsclient.net/learn/videos_wpf.aspx

                  【讨论】:

                    【解决方案11】:

                    微软其实在 MSDN 上有不错的介绍:http://msdn.microsoft.com/en-us/library/aa970268.aspx

                    【讨论】:

                      【解决方案12】:
                      【解决方案13】:

                      我发现真正帮助我的一个资源来自 jfo 的编码:http://blogs.msdn.com/jfoscoding/articles/765135.aspx

                      文档的标题是“WPF for those who know WinForms”,这正是我去年的职位!

                      【讨论】:

                        【解决方案14】:
                        • Microsoft 有一个大学概念,文档以 .net 为重点;
                        • 重点必须保持在基本语言上; [数组,类,...];
                          这意味着不进入 .net 结构(其他方式内置);
                        • xaml必须忘掉,代码构建界面;
                        • 使您的个人编码结构化和学习,尝试研究 [if] 仍然到 xaml 和 .net 结构;
                        • 电脑现在是社交领域的宣传,互联网是新设备;
                          由 meme 主导构建酷炫的桌面应用程序;
                        • 写博客虽然不是重点,现在也有windows store;

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2011-10-26
                          • 2014-07-12
                          • 2010-12-04
                          • 1970-01-01
                          • 2011-01-19
                          • 2016-10-22
                          • 2012-12-19
                          相关资源
                          最近更新 更多