c# 初識WPF


WPF,全名是Windows Presentation Foundation,是微軟在.net3.0 WinFX中提出的。WPF是對Direct3D的托管封裝,它的圖形表現依賴於顯卡。當然,作為一種更高層次的封裝,對於硬件本身不支持的一些圖形特效的硬實現,WPF提供了利用CPU進行計算的軟實現,用以簡化開發人員的工作。
 
以前圖像系統基於:
  User32 提供window應用程序的組成元素。
  GDI/GDI+提供繪圖api
 
wpf基於
  DirectX 是由微軟公司創建的多媒體編程接口。由C++編程語言實現,遵循COM。被廣泛使用於Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE電子游戲開發
  也依賴於User32
    
 
 
層次
  wpf核心命名空間都已 System.Windows開始。比如
    System.Windows
    System.Windows.Controls
    System.Windows.Media
    System.Windows.Forms 這個是Windows from 編程工具箱的一部分
 
 
System.Threading.DispatcherObject
  單線程應用程序模型(STA) 用戶界面將會被宿主到一個單一的線程。如果有其他線程與用戶界面元素交互,會產生不安全的影響。為了簡化這個模型。wpf使用一個位派遣者的對象來整理消息。由此產生出鍵盤輸入,鼠標移動以及框架處理 通過 dispatcherOjbect派生子類,應用程序的界面可以檢查代碼是否執行在正確的線程上 並且訪問派遣這來整理代碼到用戶界面線程
 
System.windows.dependencyObject
  通過屬性來與界面元素交互。wpf中的雙向數據綁定,wpf中的屬性是從 dependencyobject 類型派生出來的。
 
System.windows.media.visual
  visual類看成是一個圖形對象。wpf中呈現的每個元素都是一個可視化對象。這些元素封裝了繪圖指令,圖形如何被繪制的詳細信息 比如裁剪 同名度不設置。 visual類也提供了在托管wpf api 和 milcore.dll 之間的連接。派生自visual的任何類都有能力呈現在窗口上
 
System.windows.UIElement
  定義了wpf的核心子系統,包括布局layout 輸入input和事件event 焦點 等
 
System.windows.frameworkElement
  實現了很多在UIElement 僅僅定義的成員 比如 uielement 設置了wpf布局系統的基礎,而frameworkElement 則包括幾個關鍵的屬性提供對布局系統的支持
 
System.windows.shapes.shape
  基本形狀類
System.windows.controls.control
  控件是一種用於與用戶進行交互的元素 比如 Textbox butten control類添加了一些屬性比如設置字體 前景色 背景色 還對控件模板支持
 
System.windows.controls.contentControl
  是其他內容控件繼承的類,用來呈現單塊內容 派生自contentControl類有個content屬性 content屬性類型是object 因此可以防止內容沒有限制 可以使用可擴展應用程序標記語言 (XAML) 或者代碼來設置content
 
System.windows.controls.itemscontrol
  所有集合控件的基類 listbox treeview
system.windows.controls.panel
  所有布局容器面包的基類 布局面包能夠使用指定的布局規則來排列放置於其中的一個或者多個子元素。這些容器面包是wpf布局系統的基礎
 
 
工程目錄
App.xaml & App.xaml.cs
  這兩個文件是wpf應用程序的應用程序入口點,也就是wpf中的application類的實例化表示,在每個wpf應用程序中,只能有一個application類存在。該類管理者wpf應用程序的聲明周期。因此一個程序里只能有一個 App.xaml & App.xaml.cs App.xaml.cs是代碼后置文件可以在該文件中完成很多系統初始化工作 和系統退出等
 
MainWindow.xaml & MainWindow.xaml.cs
  這是vs2015默認生成的窗體文件 一個wpf中可能有多個窗體。頁面
 
  其實,App.xaml是可選的,但是必須在一個wpf應用程序中實例化一個Application單件類,一邊管理應用程序的生命期。MainWindow.xaml以及代碼后置文件也是可選的 可以痔瘡就windows類的實例,交付給application類即可
 
 
start 類要有個Main方法
[STAThread]
public static void Main() {
    Application app = new Application();
    Windows1 win = new Window1();
    win.Show();
    app.Run();
}

  

Vs2015 自動創建的app.xaml並沒有main方法,因為 在編譯啟動后 微軟會自動給你創建個 App.g.cs 局部類 里面有Main方法
 
 
 
 
 
 
 


免責聲明!

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



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