WPF入門學習


推薦學習視頻:

 深入淺出WPF https://www.bilibili.com/video/BV1ht411e7Fe?p=2

強烈推薦WPF入門學習網站:

  1. https://www.wpf-tutorial.com/
  2. https://www.c-sharpcorner.com/UploadFile/puranindia/wpf-interview-questions-and-answers/

 

INotifyPropertyChanged:如果是類實例里的屬性更改需要觸發XAML改變,則該類需實現INotifyPropertyChanged接口。

Binding:綁定源可以是Wpf元素,.Net公用屬性,自定義數據,ado.net數據、xml數據等。UpdateSourceTrigger有Default、Explict、LostFocus、PropertyChanged。

Binding:來源有Source、DataContext、Element、RelativeSource。RelativeSource有FindAncestor、PreviousData、Self、TemplatedParent。

優先級綁定:哪個先有值,就先賦值

ObservableCollection和List對比:ObservableCollection更耗性能;ObservableCollection實現了INotifyCollectionChanged、INotifyPropertyChanged接口,集合里每一條數據增刪,都能觸發改變。

BindingMode的OneTime、OneWay、TwoWay:OneTime性能較高,字段只需一次性設置則最好設置BindingMode為OneTime。

屬性觸發器:當依賴屬性的值改變時調用。

數據觸發器:當.Net普通屬性的值改變時調用;監聽其他控件的屬性值改變時調用。

事件觸發器:指定的路由事件啟動一組動作,永無終止。

多觸發器和多數據觸發器:滿足多個條件時,改變屬性或行為。

控件模板:自定義控件的外觀,相對Style,可以實現更高程度的改變。

數據模板:控制數據的顯示方式。

面板模板:自定義存放item的容器,控制item的排序方式。

層級模板:針對層級數據結構設計,每一個層級上都可以做DataTemplate。使用控件:TreeViewItem、MenuItem。

模板選擇器:動態的選擇模板,繼承DataTemplateSelector,覆蓋SelectTemplate方法。

邏輯樹和可視化樹:wpf控件的模板是視覺樹、wpf控件之間的層次結構是邏輯樹。

依賴屬性:1、使用屬性對依賴屬性進行包裝,關鍵字有DependencyObject、DependencyProperty、Register;2、可以多處設置依賴屬性值、但是有優先級之分,但有些值必須先滿足某些條件才能顯示;3、使得依賴屬性可以被繼承,被繼承的依賴屬性在注冊時設置元數據默認值模式為“繼承”,繼承元素依賴屬性使用“AddOwer”方法;4、只讀依賴屬性,private DependencyPropertyKey 代替 public DependencyProperty,RegisterReadOnly代替Register,屬性包裝器的SetValue方法設為私有或去掉。

附加屬性:和依賴屬性的不同,Register換為RegisterAttached,屬性包裝器換成靜態方法。

自定義路由事件:RouteEvent、RouteEventArgs,觸發路由事件,路由事件策略。

附加事件:附加事件是路由事件的一種,路由事件的宿主是UI元素,附加事件的宿主是非UI元素。

命令:可以和數據綁定集成。通常,應用程序邏輯應該總是通過命令的方式來實現的,而不是事件處理程序。對於很多需要直接掛接到事件處理過程上的常見例子,用觸發器來處理更好。

轉換器:實現IValueConverter接口,Convert方法是指源到目標的轉換,ConvertBack是指目標到源的轉換。返回值DependencyProperty.UnsetValue表示轉換器沒有生成任何值。

跨線程調用控件:獲取控件Dispatcher,然后Invoke對控件的修改。

Style:屬性、資源、觸發器。顯示、隱式設置Style。Style的Merge、優先級、BaseOn繼承、換膚。

MVVM: View對應一個ViewModel,ViewModel可以聚合N個Model,ViewModel可以對應多個View

Resource:StaticResource只解析一次,DynamicResource則發生更改就解析。資源類型也可以是各種CLR對象。資源范圍可以分三種:特定控件的本地化,窗口級別,Application級別。可以通過key關鍵字顯示引用資源。查找資源都是向上找的,先更本地化的特定控件,再窗口,再到應用程序,只要找到了就終止。

旋轉變換:RotateTransform 設置控件順時針角度變換,Angel設置順時針角度,CenterX軸在豎的方向,CenterY軸在橫的方向。

WindowStyle屬性:窗口邊框和右上角按鈕的變化,默認WindowStyle.SingleBorderWindow。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM