自从.NET 1.1以来我一直在使用Winforms,我想开始学习WPF。
我正在为WPF的初学者寻找一些好的资源。我应该阅读什么,我需要什么工具,以及我应该遵循的最佳实践是什么?
答案 0 :(得分:20)
请查看this StackOverflow post,其中包含图书推荐列表。
就最佳做法而言,请熟悉M-V-VM pattern。它似乎在WPF-land中获得了最大的吸引力。
查看this post了解可用于WPF开发的工具。
MSDN Forum是资源的好地方,WPF上的MSDN帮助文件也是如此。
我个人的建议是忘记你所学到的关于WinForms的一切。 WPF是一个完全不同的模型,一旦我最终放弃了“我在WinForms中这样做,但这种方式在WPF中不起作用”我有一个“灯泡”时刻。
希望这有帮助!
答案 1 :(得分:10)
学习曲线很高,但那里有很多非常好的资源。而且,MSDN文档和SDK示例(正如一些人已经提到的那样)非常好。
有一件事可以帮助你,只是承认前面的学习曲线,并且在没有意义的时候不要气馁。在你做一些甚至基本的事情之前,确实有很多概念可以'grok'。
已经提到的WPF书籍都以自己的方式有价值。我个人的经验是,我首先得到了 WPF Unleashed 的副本,并尝试阅读它无济于事。直到我拿起Charles Petzold的 Application = Code + Markup 并阅读其中的一些内容之后......才开始理解 WPF Unleashed 。然而,在概念真正沉入之前,我的大脑需要细节...
Tim Sneath有一个很好的WPF博客列表,我发现这些博客很有助于加入WPF社区: WPF Bloggers
我必须阅读的少数博客:
我要做的另一件事是获取Dr. WPF的代码段(位于here)。这是学习一些基本管道类型概念(如依赖项属性,路由事件和路由命令)的极好方法。
最后,我会得到Blend的副本(v2.5仍处于测试版和免费版)并使用它来生成xaml,然后深入了解生成的xaml以了解你在Blend中做了什么,映射到WPF API。
希望这会有所帮助。祝你好运。
答案 2 :(得分:6)
1开始了解XAML并控制heirarchies - UI标记及其周围的新术语和功能。 KaXaml是学习XAML的好工具,可以免费下载http://www.kaxaml.com/
2由于您已经拥有很长的.NET经验,请直接访问SDK Samples并开始在其中运行并查看正在发生的事情,使用XAML。 http://msdn.microsoft.com/en-us/library/ms771449.aspx
3如果您正在寻找博客资源,这是我最好的建议
但是选择一个已经实现或在某处看到的简单UI场景并尝试在WPF中实现它 - 这可能是学习新技术的最佳方法。
请不要害怕MVVM,一旦熟悉了WPF平台和XAML,这些事情就会变得方便。
答案 3 :(得分:5)
我推荐Adam Nathan的书Windows Presentation Foundation Unleashed
然后我建议你写一个应用程序。像其他开发环境一样,没有完美的指导方针。你必须找到对你的环境最有意义的那些。唯一的方法就是开始编码。
至于工具,Visual Studio 2008 [Express]是您最好的选择。或者你也许能够与XamlPad一起跛行。
答案 4 :(得分:5)
Adam Nathan's - WPF Unleashed,书非常好。
答案 5 :(得分:4)
我还强烈建议将Blend与VS 2008一起使用。混合非常适合创建动画。
Blend 2.5 Preview可以免费下载。
我喜欢Designer WPF Blog,它有一些很好的教程,介绍如何在Blend中使用WPF。
答案 6 :(得分:3)
虽然已在上面列出,但我想重申一点。
Kaxaml是没有,是那里最好的松散xaml编辑器。它有一个代码段库,IntelliSense,拆分视图,xaml scrubber(漂亮的打印)等等。
我只希望我们可以连接一些程序集(你可以从xaml引用)......
Robby Ingebretsen,你摇滚。
答案 7 :(得分:3)
我还谦虚地建议看看我的博客2,000 Things You Should Know About WPF,我每天在WPF上发布一条信息。博客从第一原则开始,逐渐融入更高级的主题,因此作为初学者,这是一个很好的起点。
答案 8 :(得分:3)
掌握WPF(以及Silverlight,基本上任何基于XAML .net的UI框架的矢量)都需要的不仅仅是理解新的开发概念(还有很多)。它还不足以完全理解依赖属性,附加属性,模板,数据绑定,样式,MVVM,布局机制,视觉状态和部分,效果,路由事件......要真正了解你的方式,你需要了解一些基本的图形中的概念(例如矢量图形,光栅图形,渲染,分层图形技术,动画,像素着色器,渐变,几何,路径,画笔,变换矩阵等)。除此之外,您还需要学习和理解M-V-VM,它不仅仅是一种新的设计模式 - 它是一种全新的编程范例。所以有很多需要学习的......问题在于,无论你选择哪个起点,你都会觉得缺少某些东西。
我尝试了几本书作为起点,其中很多都让我很困惑。然后我找到了Daniel M. Solis的“Illustrated WPF”,这个对我有用。他以一种开发人员清楚的方式解释了图形世界的概念,然后教授基于XAML的UI的所有新概念,同时轻轻触及每个主题并通过演示深入探讨特定主题。只需按照教程,您就会发现自己学到了很多东西,更重要的是,它消除了恐惧因素。
一旦掌握了这一点,你就可以继续进行Adam Nathan的“WPF Unleashed”并深入探索。这个可以让您更深入地了解WPF独有的概念,我相信一旦您看到每个功能至少一次,您就有更好的理解机会。他们在某种程度上完成了彼此,只有在一起才有意义。
在此之后你仍然需要学习,但此时你可以开发丰富的应用程序并学习新的主题......
享受: - )
答案 9 :(得分:2)
Visual Studio 2008(有免费的Express版本)。这就是你需要的所有工具。
然后尝试一些操作方法视频。这是一个好的开始:http://windowsclient.net/learn/videos_wpf.aspx
答案 10 :(得分:2)
微软实际上在MSDN上有一个不错的介绍:http://msdn.microsoft.com/en-us/library/aa970268.aspx
答案 11 :(得分:1)
答案 12 :(得分:1)
我发现真正帮助我的一个资源来自jfo的编码:http://blogs.msdn.com/jfoscoding/articles/765135.aspx
该文件的标题是“为知道WinForms的人提供WPF”,这正是我去年所处的位置!
答案 13 :(得分:0)