【问题标题】:WPF fundamentals?WPF基础知识?
【发布时间】:2010-08-30 13:12:27
【问题描述】:

在大学,我们使用 Windows 窗体教授 .NET(VB 和 C#)。我们想在我们的高级课程中介绍 Windows Presentation Foundation (WPF) 的概念。学生需要学习 WPF 的哪些基础知识才能获得 WPF 的基础知识?

这个想法是让学生至少在六项作业中的一项中使用 WPF,并且学习所有这些WPF Fundamentals 似乎有点令人生畏。哪三四项基本要求是强制性的?

感谢您的宝贵时间!

【问题讨论】:

  • 社区维基?
  • 我想你可能会发现每个人都有不同的一套他们认为你需要学习的强制性内容。

标签: c# .net wpf vb.net


【解决方案1】:

这是列表。我为我的初级程序员做准备。

1) XAML 基础知识和基本控件,例如文本框、按钮等,
2) 视觉树和逻辑树
3) 冒泡和隧道

4) 依赖属性
5) 附加属性

6) 数据模板
7) 控制模板

8) 风格

9) 数据绑定

触发器:
10) 事件触发器
11) 数据触发器

MVVM 基础知识和命令:
12) 委托命令
13) 中继命令
14) 应用命令
15) 路由事件
16) 路由命令

转换:
17) 渲染变换
18) 布局变换

资源:
19) 二进制资源
20) 逻辑资源
21) 静态资源
22) 动态资源
23) 相对资源

面板和基本控件:
24) 布局和面板
25) 用户控制
26) 内容控制
27) 一些控件,如 Grid、TreeView 和 Charts

接口和集合:
28) IValueConverter
29) INotifyPropertyChanged
30) ObservableCollection
31) 集合视图源

HTH

【讨论】:

  • 哇,要学习的东西太多了。我感谢你的努力,阿凡达!谢谢!
【解决方案2】:

我真的不相信三四个主题就足够了。但谈到最高优先级,我会说

  1. XAML 和标记扩展,
  2. 布局和面板,
  3. 路由事件,
  4. 依赖和附加属性。

【讨论】:

  • 谢谢。也许应该将课程分成两半。 WPF 50% 和 Windows 窗体 50%?感谢您的意见!
【解决方案3】:

如果您考虑如何以教学方式组织您的课程,您应该考虑Petzold's book。他构建章节的方式非常适合现场课程。它在教学上进行了非常精细的调整,我们在围绕本书构建课程时获得了一些很好的经验。我们还体验到它对具有 Windows 窗体背景的人特别有效。它从仅代码 (c#) 开始,后来才引入 XAML。这对掌握框架的概念有很大帮助。

【讨论】:

  • 感谢本书的提示!从 ToC 来看,它看起来像是我在将作业和讲座更改为春季课程之前需要阅读的。谢谢!
【解决方案4】:

它们都被称为基本面是有原因的。如果您计划构建任何类型的成功 WPF 应用程序,您至少应该对所有这些有基本的了解。

如果我不得不挑出一些东西让你的班级至少可以开始构建一些东西,我可能会说:

XAML 和数据绑定都是必须的。依赖属性紧随其后。输入/命令/路由事件都将包括在内。

【讨论】:

  • 这是我的第一个想法。可能可以从几个基本主题开始,使用 XAML 构建 sceletons,然后在下一个作业中继续数据绑定和依赖属性。感谢您的意见!
【解决方案5】:

Dependency PropertiesRouted Eventslayout model 在我看来是绝对必要的。 Data Binding & MVVM 下一个。

我不是 WPF 专家,但我认为从技术上讲,WPF 比 Windows 窗体要复杂得多,如果学生以后很常见,那么使用“WPF 方式”(尤其是,如果没有 html/xml 背景)。我怀疑是否有可能在不了解 WPF 的某些主要方面的情况下使用 WPF 编写健壮的代码。 WPF 对于快速或简单的 UI 来说确实是一个糟糕的选择。它需要大量的学习时间来深入了解。

【讨论】:

  • 说得好!我的教授希望我在 WPF 上“添加一些要点”,但是您真正所说的并不是要走的路。这对我来说也是很有价值的输入 -Thanx!
【解决方案6】:

当我开始使用 WPF 时,我发现 Charles Petzhold 的书“应用程序 = 代码 + 标记”非常有用。本书的前半部分完全是 C# 代码,教授 WPF 的基本概念(依赖属性、事件等),没有任何 XAML。本书的后半部分介绍了 XAML 的概念,以及它与前半部分所学内容的关系。如果我正在教一门关于 WPF 的课程,我肯定会以类似的方式进行布局——首先在代码中教授概念,然后介绍 XAML。

【讨论】:

  • 确实如此。学生熟悉 C#(和 VB)编程概念。也许人们可以通过这些概念更快地工作,并在完成本书的第一部分后更加关注 XAML。感谢您的意见!
【解决方案7】:

虽然这是相当主观的,但我认为好的四个将是(来自该链接):

  • 元素树和序列化:这是从 WinForms 到 WPF 的全新内容,了解视觉和逻辑树的工作方式对于了解 WPF 中的工作方式非常重要。
  • Events (WPF) - 同样,这与 WinForms 有很大不同,并带来了 WPFs 事件建模的所有优点。
  • 样式和模板 - 这就是将 WPF 带入生活的原因。所有与 UI 的绑定以及不属于此类别的内容。
  • 布局系统 - 嗯,它是 WPF 不是吗?布局是整个流程不可或缺的一部分。

除此之外,Dependency Properties 也很重要,至少了解 XAML 的工作原理。对于 WPF,没有真正的“唯一选择”。如果您使用过 WinForms 等模型,这是一种全新的做事方式。我会尽可能多地学习。

【讨论】:

  • WinForms 的参考和区别几乎就是我所追求的。学生从前面的课程(.NET 基础课程)中对 WinForms 有了很好的了解——所以我认为你的想法很棒。谢谢!