繁体   English   中英

WPF基本面?

[英]WPF fundamentals?

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

这个想法是让学生在六个任务中至少有一个使用WPF,并且学习所有这些WPF基础知识似乎有点令人生畏。 哪三个基础被认为是强制性的?

谢谢你的时间!

这是清单。 我为我的初级程序员做好了准备。

1)XAML基础和基本控件,如TextBox,Buttons等,
2)VisualTree和LogicalTree
3)鼓泡和隧道

4)DependencyProperty
5)AttachedProperty

6)DataTemplate
7)ControlTemplate

8)风格

9)DataBinding

触发器:
10)EventTriggers
11)DataTriggers

MVVM基础知识和命令:
12)DelegateCommand
13)RelayCommand
14)ApplicationCommands
15)RoutedEvent
16)RoutedCommand

转换:
17)RenderTransform
18)LayoutTransform

资源:
19)BinaryResource
20)LogicalResource
21)StaticResource
22)DynamicResource
23)RelativeResource

Panles和Basic Controls:
24)布局和面板
25)UserControl
26)ContentControl
27)一些控件,如Grid,TreeView和Charts

接口和集合:
28)IValueConverter
29)INotifyPropertyChanged
30)ObservableCollection
31)CollectionViewSource

HTH

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

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

如果您考虑如何在课程中进行教学结构,您应该考虑Petzold的书 他构建章节的方式非常适合现场课程。 它在教学上非常精细,我们在构建本书的课程方面取得了很好的经验。 我们还体验到它对于具有Windows窗体背景的人来说特别有效。 它仅以代码(c#)开头,后来才引入XAML。 这有助于掌握框架的概念。

在我看来, 依赖属性路由事件布局模型是绝对必要的。 数据绑定MVVM接下来。

我不是WPF大师,但我认为从技术上来说,WPF要复杂得多,即Windows Forms,如果学生以后很常见,使用“WPF方式”很难编码(特别是,如果有的话)是没有html / xml背景)。 我怀疑,使用WPF编写健壮的代码是可能的,而不知道它的一些主要方面。 对于快速或简单的UI,WPF确实是一个糟糕的选择。 潜水需要相当多的学习时间。

出于某种原因,他们都被称为基本面。 如果您计划构建任何类型的成功WPF应用程序,那么您应该至少对所有这些知识有基本的了解。

如果我不得不单独解决一些事情,以便你的班级至少可以开始构建一些东西,我可能会说:

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

当我开始使用WPF时,我发现Charles Petzhold的书“Applications = Code + Markup”非常有用。 本书的前半部分完全是C#代码,教授WPF的基本概念(依赖属性,事件等),没有任何XAML。 本书的后半部分介绍了XAML的概念,以及它与本书上半部分学到的内容之间的关系。 如果我在WPF上教课,我肯定会以类似的方式解决问题 - 首先在代码中教授概念,然后介绍XAML。

虽然这是非常主观的,但我认为好的四个(从那个链接):

  • 元素树和序列化 :这是从WinForms到WPF的全新内容,让我们了解Visual和Logical树的工作对于理解WPF中的工作方式非常重要。
  • 事件(WPF) - 再次,这与WinForms有很大不同,并带来了WPF事件建模的所有好处。
  • 样式和模板 - 这就是WPF的生命。 所有绑定到UI以及不属于此类别的内容。
  • 布局系统 - 嗯,WPF不是吗? 布局是整个过程的一个组成部分。

除此之外, 依赖属性是重要的,至少要了解XAML的工作原理。 WPF 没有真正的“唯一选择”。 如果您使用WinForms等模型,这是一种全新的做事方式。 我会尽量学习。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM