




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、TCSS V1.0 WPF學(xué)習(xí)之控件與規(guī)劃 TCSS V1.0 控件究竟是什么?q 程序的本質(zhì)就是“數(shù)據(jù)+算法-用戶輸入原始的數(shù)據(jù),算法處置原始數(shù)據(jù)并得到結(jié)果數(shù)據(jù)。問(wèn)題就在于程序如何將結(jié)果數(shù)據(jù)顯示給用戶。同樣一組數(shù)據(jù),他可以運(yùn)用LED陣列顯示出來(lái),或者以命令行方式借助各種格式控制符(如TAB)對(duì)齊并輸出,但這些都不如圖形界面(GUI Graphic User Interface)來(lái)的友好和方便。GUI的方便在于它對(duì)數(shù)據(jù)展現(xiàn)的直觀性,程序員可以經(jīng)過(guò)編程的方式將數(shù)據(jù)經(jīng)過(guò)圖形的方式展現(xiàn)出來(lái),從而防止了用戶面對(duì)一大堆復(fù)雜數(shù)據(jù)的苦楚。提高了任務(wù)效率,普及了計(jì)算機(jī)的操作。TCSS V1.0q GUI是程序
2、界面的優(yōu)勝者,在Windows上實(shí)現(xiàn)圖形用戶界面有很多種方法,每種方法又都有本人的一套開(kāi)發(fā)理念和工具。每種GUI開(kāi)發(fā)方法與它的理念和工具共同組成了一種方法論,常見(jiàn)的有:q Windows API(Win API):調(diào)用Windows的底層繪圖函數(shù),運(yùn)用C言語(yǔ),最原始也是最根底的。q Microsoft Foundition Class(MFC):運(yùn)用C+言語(yǔ)將最原始的Win32 API封裝成控件類。q Visual Component Library(VCL):Delphi和C+ Builder運(yùn)用的與MFC相近的控件類庫(kù)。q Visual Basic+ActiveX(VB6):運(yùn)用組件化的思
3、想把Win32 API封裝成控件,以期與多種言語(yǔ)共用。q Java Swing/AWT:Java SDK中用于跨平臺(tái)開(kāi)發(fā)的控件類庫(kù)。q Windows Form:.NET平臺(tái)上用于開(kāi)發(fā)GUI的老牌勁旅,完全組件化,但是需求運(yùn)轉(zhuǎn)時(shí)支持。q Windows Presentation Foundition(WPF):后起之秀,運(yùn)用全新的數(shù)據(jù)驅(qū)動(dòng)UI理念。TCSS V1.0q 縱覽Windows GUI開(kāi)發(fā)歷程,這些方法論可以分為4代:q Win API時(shí)代:函數(shù)調(diào)用+音訊處置。q 封裝時(shí)代:運(yùn)用面向?qū)ο罄砟顚in API封裝成類,由來(lái)自UI的音訊驅(qū)動(dòng)程序處置數(shù)據(jù)。q 組件化時(shí)代:運(yùn)用面向組件理念在
4、類的根底上分裝成組件;音訊被封裝成了事件。變成事件驅(qū)動(dòng)。q WPF時(shí)代:在組件的根底上,運(yùn)用專門(mén)的UI設(shè)計(jì)言語(yǔ)并引入數(shù)據(jù)驅(qū)動(dòng)UI的理念。TCSS V1.0q WPF之所以會(huì)被稱做是新一代關(guān)鍵有兩點(diǎn):第一,之前幾代GUI只是運(yùn)用編程言語(yǔ)進(jìn)展UI設(shè)計(jì),而WPF有本人專門(mén)設(shè)計(jì)UI的言語(yǔ)XAML。第二:前幾代的UI在和數(shù)據(jù)交互上都是由Windows音訊到控件事件一脈相承,一直把UI控件放在主導(dǎo)位置而數(shù)據(jù)處于被動(dòng)位置,用UI來(lái)驅(qū)動(dòng)數(shù)據(jù)的改動(dòng),WPF在事件驅(qū)動(dòng)的根底上引入了數(shù)據(jù)驅(qū)動(dòng)的理念,讓數(shù)據(jù)重歸中心位置讓UI回歸數(shù)據(jù)表達(dá)者的位置。q UI是讓用戶可以察看數(shù)據(jù)和操作數(shù)據(jù),為了讓用戶察看數(shù)據(jù),我們需求用U
5、I來(lái)顯示數(shù)據(jù);為了讓用戶可以操作數(shù)據(jù),我們需求運(yùn)用UI來(lái)響運(yùn)用戶的操作。WPF中那些可以展現(xiàn)數(shù)據(jù)響運(yùn)用戶操作的UI元素稱之為控件Control??丶宫F(xiàn)的數(shù)據(jù),我們稱之為控件的“數(shù)據(jù)內(nèi)容??丶陧戇\(yùn)用戶的操作之后會(huì)執(zhí)行本人的一些方法或以事件的方式通知運(yùn)用程序,我們稱之為控件的行為或算法內(nèi)容??梢?jiàn)WPF中的控件扮演著雙重角色,是個(gè)非常籠統(tǒng)的概念。-Control是數(shù)據(jù)和行為的載體。而無(wú)需具有固定的籠統(tǒng)。TCSS V1.0WPF的內(nèi)容模型q 所謂物以類聚,根據(jù)能否可以轉(zhuǎn)載內(nèi)容,可以裝載什么樣的內(nèi)容,WPF中的內(nèi)容可以分為以下幾種類型:TCSS V1.0q 可以把控件想象成一個(gè)容器,容器中的內(nèi)容就
6、是控件的內(nèi)容。控件的內(nèi)容可以直接是數(shù)據(jù),也可以是控件。當(dāng)控件的內(nèi)容還是控件的時(shí)候就構(gòu)成了控件的嵌套,所以WPF中的UI會(huì)呈現(xiàn)出一種樹(shù)形構(gòu)造。假設(shè)不思索控件內(nèi)部的樹(shù)形構(gòu)造,只察看用控件組成的樹(shù),那么這棵樹(shù)稱為邏輯樹(shù)(Logical Tree);WPF控件往往是由更根本的控件構(gòu)成的,即控件本身就是一棵樹(shù),假設(shè)連控件本身的樹(shù)都思索在內(nèi),這棵樹(shù)比邏輯樹(shù)更繁茂,這棵樹(shù)被稱為可視元素樹(shù)(Visual Tree)。q 控件是內(nèi)存中的對(duì)象,控件的內(nèi)容也是內(nèi)存中的對(duì)象??丶?jīng)過(guò)本人的某個(gè)屬性援用著其作為內(nèi)容的對(duì)象。這個(gè)屬性稱為內(nèi)容屬性。內(nèi)容屬性是個(gè)統(tǒng)稱,詳細(xì)到某個(gè)控件的時(shí)候,內(nèi)容屬性都有本人確切的名字-有的直接
7、叫Content,有的叫Child;有些控件的內(nèi)容可以是集合,其內(nèi)容屬性有叫Items或叫Children的。TCSS V1.0各內(nèi)容模型詳解q 我們把符合某類類容模型的元素稱為一個(gè)族,每個(gè)族用它們共同的基類來(lái)命名。q ContentControl族q 該族控件有以下特點(diǎn)q 均派生自ContentControl類。q 它們都是控件。q 內(nèi)容屬性的稱號(hào)是Content。q 只能由單一內(nèi)容充任其內(nèi)容。TCSS V1.0q HeaderedContentControlq 該族控件有如下特點(diǎn)q 均派生自HeaderedContentControl類,HeaderedContentControl是Con
8、tentControl的派生類。q 它們都是控件,用于顯示帶標(biāo)題的數(shù)據(jù)。q 除了用于顯示主體內(nèi)容的區(qū)域外,控件還有一個(gè)顯示標(biāo)題的區(qū)域。q 內(nèi)容屬性為Content和Header。q 無(wú)論是Content還是Header都只允許一個(gè)元素作為器內(nèi)容。TCSS V1.0q ItemControl族q 特點(diǎn):q 均派生自ItemControl類。q 它們都是控件,用于顯示列表化的數(shù)據(jù)。q 內(nèi)容屬性為Items或者ItemsSource。q 每種ItemControl都對(duì)應(yīng)著本人的條目容器(Item Container)。TCSS V1.0q HeaderedItemControlq 本族控件不光要具備
9、ItemControl的特性外,還要具有顯示標(biāo)題的才干。q 該族控件有以下特點(diǎn):q 均派生自HeaderedItemControl類。q 它們都是控件,用于顯示列表化的數(shù)據(jù),同時(shí)可以支持顯示一個(gè)標(biāo)題。q 內(nèi)容屬性為Items,ItemsSource和Header。q 本族控件只需3個(gè):MenuItem、TreeViewItem、ToolBar。TCSS V1.0q Decorator族q 本族元素是在UI上起裝飾效果的。本族元素特定如下:q 均派生自Decorator類。q 起UI裝飾作用。q 內(nèi)容屬性為Child。q 只能有單一內(nèi)容充任其內(nèi)容。TCSS V1.0q TextBox和TextB
10、lock。q 這兩個(gè)控件最主要的功能就是顯示文本。TextBlock只能顯示文本,不能被編輯,所以又稱為靜態(tài)文本。TextBox那么允許用戶編輯里面的內(nèi)容。TextBlock雖然不能編輯內(nèi)容,但是可以運(yùn)用豐富的印刷級(jí)的格式控制標(biāo)志顯示出專業(yè)的排版效果。q TextBox不需求太多的格式顯示,所以它的內(nèi)容就是簡(jiǎn)單的字符串,內(nèi)容屬性為T(mén)ext。q TextBlock由于需求操作格式,所以內(nèi)容屬性是Inlines(印刷中的“行),同時(shí)TextBlock也保管了一個(gè)Text屬性,當(dāng)顯示一個(gè)簡(jiǎn)單的字符串,可以運(yùn)用這個(gè)屬性。TCSS V1.0q Shape族元素。q 友好的界面離不開(kāi)圖形的搭配,Shape
11、族元素就是專門(mén)用來(lái)在UI上繪制圖形的一類元素。這類元素沒(méi)有本人的內(nèi)容,我們可以運(yùn)用Fill元素為其設(shè)置填充效果,還可以運(yùn)用Stroke屬性為它們?cè)O(shè)置邊線效果。q 本族元素特定如下:q 均派生自Shape類。q 用于2D圖像的繪制。q 無(wú)內(nèi)容屬性。q 運(yùn)用Fill設(shè)置填充,運(yùn)用Stroke設(shè)置邊線。TCSS V1.0q Panel族元素q 本族元素特點(diǎn)如下:q 均派生自Panel類。q 主要功能是控制UI規(guī)劃。q 內(nèi)容屬性為Children。q 內(nèi)容可以是多個(gè)元素,Panel將控制它們的規(guī)劃。TCSS V1.0q UI規(guī)劃(Layout)q WPF作為專業(yè)的界面技術(shù),規(guī)劃功能是它的中心技術(shù)之一。
12、友好的用戶界面和良好的用戶體驗(yàn)離不開(kāi)設(shè)計(jì)精良的規(guī)劃。日常任務(wù)中,WPF設(shè)計(jì)師最大的任務(wù)量就是規(guī)劃和動(dòng)畫(huà)。除了點(diǎn)綴型的動(dòng)畫(huà)之外,大部分規(guī)劃都是動(dòng)畫(huà)間的轉(zhuǎn)換,UI規(guī)劃的重要性可見(jiàn)一斑。規(guī)劃是靜態(tài)的,動(dòng)畫(huà)是動(dòng)態(tài)的,用戶體驗(yàn)就是用戶在這動(dòng)靜之中與軟件功能產(chǎn)生交互式的感受TCSS V1.0q 規(guī)劃元素q Grid:網(wǎng)格。可以自定義行和列并經(jīng)過(guò)行列的數(shù)量、行高列寬來(lái)調(diào)整控件的規(guī)劃。近似于Html中的table。q StackPanel:棧式面板??蓪脑卦诔潭然虼怪狈较蚺懦梢粭l線,當(dāng)移除一個(gè)元素后,后面的元素會(huì)自動(dòng)向前填充空缺。q Canvas:畫(huà)布。內(nèi)部元素可以運(yùn)用以像素為單位的絕對(duì)坐標(biāo)進(jìn)展定位,
13、類似于Windows Form的規(guī)劃方式。q DockPanel:泊靠式面板。內(nèi)部元素可以選擇泊靠的方向,類似于Winform中設(shè)置控件的Dock屬性。q WrapPanel:自動(dòng)折行面板。內(nèi)部元素在排滿一行后可以自動(dòng)折行,類似于Html中的流式規(guī)劃。TCSS V1.0q Gridq 特點(diǎn):q 可以定義恣意數(shù)量的行和列,非常靈敏。q 行的高度和列的寬度可以運(yùn)用絕對(duì)值、相對(duì)比例或自動(dòng)調(diào)整的方式進(jìn)展準(zhǔn)確設(shè)定,并可以設(shè)置最大和最小值。q 內(nèi)部元素可以設(shè)置本人所在的行和列,還可以設(shè)置本人縱向跨幾行,橫向跨幾列。q 可以設(shè)置Children元素的對(duì)齊方向。q 基于以上這些特點(diǎn),Grid的適用場(chǎng)一切:q UI規(guī)劃的大框架設(shè)計(jì)。q 大量UI元素需求成行或者成列對(duì)齊的情況。q
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國(guó)汽油消防泵行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)水利水電工程行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030中國(guó)氧化鐵行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)民辦教育行業(yè)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)橄欖球行業(yè)發(fā)展分析及投資前景預(yù)測(cè)研究報(bào)告
- 2024-2030全球旅行蚊帳行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2020-2025年中國(guó)硅石熟料行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資戰(zhàn)略規(guī)劃分析報(bào)告
- 中國(guó)專用節(jié)能離合器行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 2025年中國(guó)重型越野自卸車(chē)行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略規(guī)劃建議報(bào)告
- 2024年中國(guó)零售燃料行業(yè)調(diào)查報(bào)告
- 2025年上半年第二次商務(wù)部國(guó)際貿(mào)易經(jīng)濟(jì)合作研究院招聘7人重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 【初中語(yǔ)文】第16課《有為有不為》教學(xué)課件2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- (一模)青島市2025年高三年級(jí)第一次適應(yīng)性檢測(cè)地理試卷(含標(biāo)準(zhǔn)答案)
- 2025年鐵嶺衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)學(xué)生專用
- 2025年公務(wù)員遴選考試公共基礎(chǔ)知識(shí)必考題庫(kù)170題及答案(九)
- 廣告投放預(yù)算分配情況統(tǒng)計(jì)表(按預(yù)算項(xiàng)目)
- 2025年高考預(yù)測(cè)猜題 化學(xué) 信息必刷卷01(新高考 通 用)(解析版)
- 壓瘡的六個(gè)分期及護(hù)理措施
- 滬教版(五四學(xué)制)(2024)六年級(jí)數(shù)學(xué)下冊(cè) 第六章 圓和扇形 單元測(cè)試題(含解析)
- 2025年開(kāi)封大學(xué)單招職業(yè)技能測(cè)試題庫(kù)完整
- 30-提前介入在建高鐵的實(shí)踐與思考5則范文
評(píng)論
0/150
提交評(píng)論