回顧
上一篇,我們主要討論了WPF的幾個重點的基本知識的介紹,本篇,我們將會簡單的介紹幾個基本控件的簡單用法,本文會舉幾個項目中的具體的例子,結合這些例子,希望我們可以對WPF的掌握會更深刻。本文涉及的內容可能較多。請大家慢慢看看。錯誤之處,還請指出。
本文大綱
1、基本控件介紹與用法。
基本控件介紹與用法
文本控件
Label控件
label控件:一般用戶描述性文字顯示。
在Label控件使用時,一般給予用戶提示。用法上沒有什么很特殊的,label控件的值記住:不是Text 而是 Content屬性。
TextBlock控件
TextBlock控件,是只讀的文本框,無法進行編輯,比較適合顯示文本,該文本內容不允許編輯的情況。
TextBlock進行設置值的屬性是Text 支持直接賦值和數據綁定的方式賦值。
TextBox
TextBox是支持編輯的基本控件,我們平時不管是開發BS或者是CS的桌面應用,該控件的使用,應該都不陌生。我這里只介紹幾個簡單的屬性,因為在具體的項目開發過程中可能會用到:
上述介紹的屬性,在實際的項目中基本上是都要使用的。更多的使用方法,具體在后面的例子中體現
PassWordBox
一般該文本框,用於用戶輸入驗證或者注冊時使用,對於其他模式下,很少使用該控件。
對於具體的用法,一般在用戶注冊或者賬戶信息管理時。
數據控件
DataGrid
DataGrid 是WPF中最常用的列表數據顯示控件,該控件功能強大,並且擁有強大的可定制性,下面我們就來看看。
上面給出的是dataGrid的基本屬性,下面我們通過設置樣式,來設置下DataGrid的基本樣式:
關於觸發器,涉及的內容比較多,不過呢,原理和用法都差不多,都是通過設置觸發器觸發的條件,內部就是進行相關屬性的設置或者進行一些動畫和效果。
關於表格中具體列的定義如下:
關於DataGrid表格的定義就基本完成了,具體的用法,我們在后面的MVVM中會大量的使用該控件。
ListView
一般ListView都可以通過DataGrid來替代。
ListBox
ListBox 下來列表級控件,是項目中比較常用的,該控件通過重寫控件等方式,對項目中使用了特效方面特別有幫助。
具體的效果如下:
要想實現比較好的界面效果,那么必須通過自定義控件模板來實現。對於數據模板,更多是設置數據類型的控制,對於特殊的界面樣式,必須是二者的結合,通過控件模板中的樣式的設置來達到效果。
ListBox還可以達到如下效果。
都可以通過樣式和觸發器等結合使用達到我們對效果的控制。
ComboBox與ListBox基本上差別不大,所以,這里再不做詳細介紹。
GroupBox
GroupBox用於組織頁面相關元素放到一起,方便用戶使用等方面提供幫助。
其他的用法,就和布局容器一樣,因為其內部默認是加入了Grid。
其他簡單控件
幾類基本控件
我們這里介紹幾個基本控件, 關於控件的用法比較簡單,例如如下方式:
上面介紹的屬性,明白即可,具體的用法與winform中的部分控件,沒有什么差別,所以這里暫不介紹具體的用法了。
幾個復雜控件
RichTextBox
RichTextBox比較的強大,支持富文本和簡單文本等,可以實現出類似Word的那樣的效果。
下面我們來看看我們來自定義一個帶有Text屬性的RichTextBox的后台代碼定義
這樣,我們就通過依賴屬性,封裝了一個簡單的依賴屬性,下面我們通過綁定來設置和獲取當前富文本的值
這樣,我們就可以顯示富文本控件的內容了。
當然,我們還可以這樣:
我們運行下看看效果。
還可以對RichTextbox繼續封裝,直接加載Word等,作出類似Word效果的文本編輯器。
MediaElement
MediaElement提供了對媒體文件的操作和訪問:
我們在具體的使用中,只需使用SetPlayFile。設置文件的資源路徑,然后點擊Play即可開始播放。具體的用法,我這里就不在給出具體例子,后續本例的代碼,我會提供出來。
Menu
Menu提供了菜單欄方式的多級菜單的管理和操作:
這里對Menu的樣式不做任何的定制和管理
下面來對Menu進行測試:
將Menu添加到頁面中
運行后,效果如下:
這里沒有考慮界面效果和樣式。
TabControl
TabControl是非常常見和有用的控件,例如我們使用的LiveWriter的下方的這部分:
我們就可以通過頁簽的方式來實現。
可以看出來TabControl特別的簡單,很容易使用,對我們來說也必將常用。特別是像瀏覽器多頁簽打開時,我們如果仿制,那么也可以使用該控件達到目標:
我們只要進行深度的定制,即可達到效果。
其他未介紹的控件
像WebBrowser、TreeView我准備在后續的模板等章節的時候,會涉及到該部分的內容,所以,我這里就先不講解了。
總結
本文只是簡單的介紹了幾個重要控件的基本用法,沒有給出實際項目中的使用案例,本文對上面的用法提供下載,其實都是比較簡單,我沒有寫出來具體的運行的案例,在講解后續章節中,我將會深入結合一個具體的案例來說明如何使用它們,並且集合之前項目的經驗來分析下控件的使用心得。