如何开始WPF开发?

时间:2008-09-24 20:30:54

标签: .net wpf .net-3.5

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

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

14 个答案:

答案 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)

  • 微软有一个大学概念,文档以 .net 为重点;
  • 重点必须放在基本语言上; [数组,类,...];
    这意味着不进入 .net 结构(其他构建方式);
  • xaml 一定要忘掉,界面靠代码构建;
  • 让您的个人编码结构化和学习,尝试研究 [if] 仍然是 xaml 和 .net 结构;
  • 计算机现在是一种社交领域的宣传工具,并且是新设备的互联网;
    以模因为主导,构建酷炫的桌面应用程序;
  • 写博客虽然不是重点,但现在也有windows store;