45
|
SwDevMan81 Chris Barlow · 技术社区 · 15 年前 |
1
35
WPF是不同的,它是无法摆脱的。 我的主要建议是不要害怕XAML;拥抱它,这就是力量所在! 让我解释一下: 为了提高工作效率,我更喜欢在文本视图中编写XAML,因为我可以在几个按键中创建窗口的纯布局。如果您经常输入代码,那么这是开发窗口的一种非常快速的方法。然后您可以使用可视化编辑器使它看起来漂亮。
如果您记住XAML的每个元素
如果你花太多的时间在视觉设计师身上,那么你就不会欣赏这一点,对某些人来说,这会减慢学习的速度。 最近的 Hanselminutes 播客可能会让你感兴趣。 我也强烈建议您尽早学习视图和视图模型的概念,即使您不订阅其中的所有内容。 CompositeWPF 因为这确实有帮助。 |
2
17
Karsten Januszewski的一篇好文章叫 Hitting the Curve: On WPF and Productivity 你可能会发现有趣的是:
但这一切都值得!;) |
3
11
学习WPF的困难与其说是API,不如说是模型。这是一个非常不同的心理模式,你会用 Windows Forms . 通常,数据绑定到对象的属性,而不是编写强制填充UI元素的方法。为了获得复杂的行为,通常使用某种程度的组合。 例如,如果在列表中有一系列需要的项目,其中一段文本后跟一个图像。在Windows窗体中,您将得到列表并对其进行迭代。对于列表中的每个项目,您将为项目和文本创建控件,并添加图片,然后将新的子控件添加到列表中。(具体程序可能因控制类型而异。您可以添加子项,而不只是创建一个控件等)。 WPF将以非常不同的方式处理这一问题。在WPF的顶层,您将声明一个容器对象并将其绑定到列表。 然后,您将为该容器提供一个用于显示其项的模板。模板基本上是另一个控件,它定义了子元素的位置,这些子元素与填充列表的类的实例绑定在一起。 它以非常构图的感觉结束,并且是荒谬的强大。它也是一个与大多数开发人员所习惯的非常不同的模型,并且在您能够将模型内部化之前,尝试以Windows窗体/等中的方式进行操作时遇到问题是很常见的。 但是,一旦您习惯了这个模型,回到其他API是很痛苦的。不是因为它们突然变硬了,而是因为你知道事情是多么容易。 |
4
9
你也许可以从我的问题历史中推断出,我肯定发现这是一条陡峭的学习曲线。你几乎准确地描述了我的经历。作为一名全职学生(数学和物理专业,而不是软件工程专业),他只为业余应用程序做WPF编程,这让人很沮丧。我尝试过在WPF中创建新的应用程序,或者将我的一些旧应用程序移植到WPF中,并且总是停留在一些看起来非常困难的小事情上。我没有做的一件事——基本上是因为时间问题——就是坐下来看一本书或一系列的教程,然后一步一步地学习。如果您是一个专业的开发人员,那么这可能更可行,并且可能使WPF对您来说更容易实现。 我认为,给我带来麻烦的最大的事情是让我的头脑围绕着模型-视图-模型范式(参见 this question of mine )。而在WinForms中,我可以将一些东西拖放到一个窗体上,处理它的属性,并在代码隐藏中连接一些事件,现在我必须考虑将事物划分为视图、模型和视图模型。这些代码隐藏事件中有很多成为了验证规则或数据绑定的东西。我的应用程序中没有一个是真正的“数据操作”应用程序,这可能没有帮助;也就是说,它们不会操作客户信息数据库或其他任何东西,在这些数据库中,很多操作都是有意义的。相反,它更像是“我想要一个用户输入一个URI的文本框,并且我希望只有当该文本框包含一个有效的URI时,才会启用显示“下载”的按钮。”这样的小事情开始变得非常复杂;我必须考虑URI在我的模型中的位置,它在我的视图模型中的位置,连接一个验证框架。将按钮和文本框的工作和数据绑定属性绑定到所有这些元素。 另一个恼人的问题是框架中遗漏了多少东西。例如, sorting listviews . 不过,最终,WPF有很多优势。 The layout framework seems a lot nicer than the primarily pixel-based WinForms model. 它使用了现代字体,如segoe ui,heh:p。它的合成功能也非常棒,例如,在按钮上放置图像是多么自然(本质上,只需在按钮xaml标记内放置图像xaml标记);我怀疑它可以解决 my problem regarding checkboxes with controls inside of them 也一样,尽管我还没试过这么做。 |
5
9
我用.NET玩了4年多了,主要是 Windows Forms 应用。绑定并不是未知的,我尝试在所有的C应用程序中使用良好的实践。在过去的一个月里,我一直在为这份工作学习WPF,我不得不承认它非常强大,但很难实现。你可以做得更多,用更少的努力实现一些酷的设计,但只有当你知道它是如何真正工作的,这是困难的,因为它是巨大的。 而且,调试更难——这也使得学习变得更慢。我认为问题在于Visual Studio的IDE对XAML没有太大帮助,您很快就会错过 IntelliSense 当进行绑定或其他现在在XML标记中的事情时。我喜欢它,但是的,学习曲线并不平滑。 |
6
6
可能很陡。 我花了一个月的大部分时间来试验wpf,并在其中编写了一个我们当前产品的模型,而没有对它的数据绑定模型开发直觉,甚至没有弄清楚微软对它的使用意味着什么。我花了更少的时间掌握ASP.NET MVC的基础知识。 [我们的应用程序显示/依赖于大量实时数据,我使用了弥敦的Windows演示文凭基金会。也许另一本书更合适。] |
7
5
一旦你对WPF的工作原理有了大致的了解,它就很容易实现了——试试看。” WPF - how and why “。 最大的问题是,如果值得的话,可以解决这个问题,而且仍然有很多应用程序可以很好地实现为Windows窗体和一些图形。 我也同意前面关于进入XAML的评论——它就像一个稍微复杂一点的HTML,唯一真正的困难是找出什么做了什么。至于在以后的项目中陷入困境,你不总是在以后的项目中陷入困境吗?当你开始尝试做1%的事情时,这是很困难的。 |
8
3
是的,这不是一个简单的步行-但不要害怕。关于wpf的事情,它是精心设计的,所以当你学习它时,你会得到一个持续的积极的情绪反馈(至少我做了;)。你喜欢坐着玩,每隔几分钟就喊一声“哇哦”;) |
9
3
这将是那些“视情况而定”的答案之一,但所有的答案 真的? 取决于你是否是那种不断提高技能的开发人员。如果是这样的话,那么归根结底要归结为两件事。 买 WPF Unleashed (其他的书也有,但我极力推荐这本书),通过例子,在大约2个月的时间里,你会想,如果没有它,你是怎么做到的。 这不是火箭科学,也没有需要处理的范式转换概念。事实上,如果您习惯于在逻辑和表示之间保持良好的分离,那么它应该正好适合您。 要达到精通程度,你可能需要6到12个月的时间。 祝你好运。 |
10
2
从与我一起工作的少数人那里,他们真的建议通过ExpressionBlend的所有教程。这给了他们一个很好的WPF背景和更好的工具时使用它。 |
11
2
如果您有HTML或XML或类似的基于语言的经验,这并不特别困难,特别是如果您有Web设计经验。如果你严格地来自Winforms的背景,学习曲线会更陡一些。我目前正在学习WPF,由于我来自广泛的Web开发背景,我发现对于大多数概念来说,这些概念都不难掌握。我发现windowsclient.net上的在线教程视频也非常有用,如果有点组织不好的话。 |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
Arijit · 移动画布内绘制的矩形 2 年前 |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |