WPF基础
WPF基礎
前段時間,學了WPF,發現挺有趣的,今天,我們就來講下WPF吧。WPF是微軟推出的基于Windows Vista的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作;同時它提供了全新的多媒體交互用戶圖形界面。它所用到的界面是XAML,它和我們之前學的C#的XML有挺大的不同。XAML有三個頂級元素。Window(窗口)、UserControl(用戶控件,布局的時候像窗體那樣布局就可以了)。Page(頁)把窗體以網頁的形式展現。而XAML頁面里只能有一個頂級元素。而頂級元素里面只能有一個子元素。
?
1、應用程序界面設計中,合理的元素布局至關重要,它可以方便用戶使用,并將信息清晰合理地展現給用戶。WPF提供了一套功能強大的工具-面板(panel),來控制用戶界面的布局。你可以使用這些面板控件來排布元素。
?
WPF用于布局的面板主要有6個:StackPanel(棧面板)、WrapPanel(環繞面板)、DockPanel(停靠面板)、Canvas(畫 布)、Grid(網格面板)和UniformGrid(均布網格)
?
WrapPanel布局面板將各個控件從左到右按照行或列的順序羅列,當長度
?
Orientation 設置的值 ??<!--Horizontal 是垂直方向 ?Vertical 橫方向-->
DockPanel.Dock ?上下左右
?
在<Canvas></Canvas>標簽,如果將ClipToBounds屬性設為true,在設計界面將會對子元素的超出部分進行裁剪:
?
2、XAML常用的五個布局元素
Grid:網格。可以定義行和列并通過行列的數量、行高列寬來調整控件的布局。近似Html中的table。
StackPanel:棧式面板。可將包含的元素在水平或垂直方向排成一條線,當移除一個元素后,后面的元素會自動向前填充空缺。
Canvas:畫布。內部元素可以使用以像素為單位的絕對坐標進行定位,類似于WindowsForm的布局方式。
DockPanel:泊靠式面板。內部元素可以選擇泊靠的方向(上下左右),類似于Html中的流式布局。
?
Grid:可以定義任意數量的行和列,非常靈活。
行的高度和列的寬度可以使用絕對值、相對比例或自動調整的方式進行精確設定,并可以設置最大和最小值。
內部元素可以設置自己所在的行和列,還可以設置自己縱向跨幾行,橫向跨幾列。
可以設置Children元素的對齊方向。
?
3、基于以上這些特點,Grid的使用場合有:
UI布局的大框架設計
大量UI元素需要成行或者成列對齊的情況
UI尺寸改變的時候,元素需要保留固有的寬度和高度比例。
UI后期可以有較大的變更或擴展。
?
依賴屬性就是一種可以自己沒有的值,并且可以通過綁定從其他數據源獲取值。依賴屬性可支持WPF中的樣式設置、數據綁定、繼承、動畫及默認值。
將所有的屬性都設置為依賴屬性并不總是正確的解決方案,具體取決于其應用場景。
(1)希望可在樣式中設置屬性
(2)希望屬性支持數據綁定
(3)希望可使用動態資源引用設置屬性
(4)希望從元素樹中的父元素自動繼承屬性值
(5)希望屬性可進行動畫處理
(6)希望屬性系統在屬性系統、環境或用戶執行的操作或者讀取并使用樣式更改了屬性以前的值時報告
(7)希望使用已建立的、WPF進程也使用的元數據約定,例如報告更改屬性值時是否要求布局系統重新編寫元素的可視化對象。
Trigger對應的兩大屬性就是附加屬性和依賴屬性。
?
(1)路由事件是一種可以針對元素樹中的多個偵聽器而不是僅僅針對引發該事件的對象調用處理程序的事件。路由器是一個CLR事件。
(2)路由事件與一般事件的區別在于:路由事件是一種元素樹的事件,當路由器事件觸發后,它可以向上或向下遍歷可視樹和邏輯樹,他用一種簡單而持久的方式在每個元素上觸發,而不需要任何定制的代碼(如果用傳統的方式實現一個操作,執行整個事件的調用則需要執行代碼將事件串聯起來)。
(3)路由事件的路由策略:
所謂的路由策略就是指:路由事件實現遍歷元素的方式。
?
形狀是一個2D繪圖類
位于System.Windows.Shape空間內
包括最常用的繪圖對象
Line直線
Rectangle矩形
Ellipse橢圓
Polygon多邊形
Path路徑
圖形對象共有屬性
Stroke:說明如何繪制圖形的輪廓,即所使用的畫刷
StrokeThickness:說明圖形輪廓的粗細度
Fill:說明如何繪制圖形的內部
指定圖形的坐標位置和頂點的數據屬性,以及設備無關的像素來度量
?
圖形繪圖與幾何繪圖區別
圖形對象可以獨立存在,可以獨立繪制出具體需要的圖形
幾何圖形對象沒有具體的形體,它需要依賴于某一對象元素而存在,不能直接呈現在畫板上
?
幾何繪圖包括5種對象
LineGeometry:確定兩點繪制一條直線
RectangleGeometry:繪制矩形的集合圖形
EllipseGeometry:繪制橢圓形的幾何圖形
GeometryGroup:組合幾何對象,將多個單一的幾何對象組合成一個集合對象
PathGeometry:路徑幾何對象
?
畫刷
所有的UI元素都可以通過畫刷的設置改變它們的風格
使用不同的畫刷對目標區域進行“繪制”,會有不同的效果
畫刷種類:
SolidColorBrush:單色實心畫刷
LinearGradienBrush:線性漸變畫刷
RadialGradientBrush:徑向漸變畫刷
ImageBrush:圖片畫刷
?
圖像簡單處理
拉伸圖像:通過設置Stretch屬性實現圖像的拉伸
裁切圖像:通過設置Clip屬性裁切圖像
使用圖像輸入文字:ImageBrush元素實現使用圖像輸入文字
以上就是我先學到的WPF的小小內容,期待我們下次的遇見。
總結
- 上一篇: 物联网定位模块对智慧交通的意义
- 下一篇: 简约卡通风格404单页模板