Hello开发人员和设计师,
我非常愿意学习使用C#作为逻辑代码的WPF。 或者我还是试着去。
我已经用Forms风格编写了一个长达2页的代码隐藏,所以我知道一些语法。 但这是一种非常麻烦的方式。
问题在于我至少仍然在理解面向对象编程的基本概念方面挥之不去。但是10次中的9次我完全没有得到示例代码,因为“我甚至不知道它叫做什么的小东西”。 你怎么知道是否有一个你要表达的函数的命令,更重要的是......它是如何被调用的以及它在哪个命名空间中的位置?
即使是最好的视频示例也没有为我做,因为当输入任何代码时,他们永远不会解释代码是如何工作的。而且大多数时候它甚至没有加起来我所知道的逻辑代码(当然我错了)。
在早期我学习了Commodore64的基本没问题。 学习和编写Actionscript(Flash),在2个月内创建2D-shoot'em 学习和编写CMD,在3个月内为各种功能编写5000多行代码。
为什么Merlin的胡子是WPF这么难? 观看“最简单”的教程 - 视频正在变得越来越失去动力。
有人认识到这一点吗?
感谢阅读, 丹尼
答案 0 :(得分:8)
关于WPF,我发现最有用的文章是MSDN上的概述,它们可能需要相当长的时间才能完成,但它们简洁而深入,请参阅this page以获取主要概述
为什么WPF很难是一个很好的问题,一个主要原因可能是它只是巨大的,至少我是这样认为的。除了拥有所有代码之外,您现在还拥有XAML标记,这是一个独立的世界。
2008年在F#上做过演示的微软有人说如果你知道其中的三个关键词,let
,fun
& |>
,你知道整个语言,这甚至都不是夸大其词。另一方面,WPF 不是语言,它是一个子框架。如果F#可以比作3纳米技术构建模块,那么WPF是一个50米的工作台,堆叠着工具(控件)和十几台重型机器(WPF机制,如dependency properties,data binding,{{3} },commanding等等,所有这些都带有手册。因此,如果您遇到问题,您几乎需要知道所有工具和机器的作用,以便您知道要使用哪些工具和机器,当然您还需要知道如何使用它们,除了他们的基本功能甚至可能都有其自身的问题和特点,这一点很重要。
因此,学习WPF需要大量关于框架的原始知识,但也需要经验,因此您知道在给定情况下最佳方法是什么,并了解可以做什么和不可做什么。
答案 1 :(得分:4)
MVVM:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
学习它然后使用它。
答案 2 :(得分:3)
我认为自从我最近开始使用WPF以来,我会添加$ .02。首先,您需要阅读Fëanor和DEAR GOD提到的MVVM文章,下载示例代码并了解该程序中的每一行!阅读这篇文章很棒,但是看到代码,运行它,更改它等等都是不可能的。我还回应了有关MSDN概述的评论,以及关于创建一个辅助项目而不是通过现有项目学习WPF的评论。
除此之外,不要期望在一天,甚至一周内获得WPF。我已经使用它大约一个月了,我还有很长的路要走。我有我的“AHA!”大约一个星期前,一切都开始点击的时刻,我明白我不知道哪个是重要的。一个好的策略是让您选择一个概念,如数据绑定,数据模板或样式,并深入探讨每个概念。要咀嚼很多,所以请记住罗马不是一天建成的。如果你还不熟悉数据绑定,我会尽早选择它,因为它非常重要。
最后,一旦你学习了WPF,重新使用Windows Forms将非常困难:)
玩得开心! Q
答案 3 :(得分:2)
我认为WPF实际上并不那么难。我认为只是WPF肯定需要一种稍微不同的思维方式。您可以说它是基于某些原则构建的(如MVVM,如另一张提到的海报),它与大多数其他框架非常不同。如果你尝试像你使用Windows窗体或MFC或ASP.NET或其他任何...那么你会很困难。你需要愿意改变你对事物运作方式的看法。
坦率地说,我认为学习它的唯一方法就是实验。想出一些方面的项目来使用WPF并尝试一下。学习一点并重构它。获取一本好书,阅读WPF disciples列表,阅读Sacha Barber所写的任何内容,在此处阅读WPF section。当你有第一个“啊哈!”你决定写一个附属物来解决你遇到的一些模糊问题的那一刻,你会知道你终于理解了它:)