簡體   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