




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、布局與輸入1. 布局基礎(chǔ)a WPF提供了一套面板(Panel),它們是一系列具有特殊用途的用戶界面元素b StackPanel-棧面板 WrapPanel環(huán)繞模板 DockPanel停靠模板 Grid網(wǎng)格 Canvas 畫布 UniformGrid 均布網(wǎng)格c 以上描述了WPF中的主要面板類型,無論使用哪種面板,它們都遵循相同的基本規(guī)則:元素的位置通常是由包含它們的面板所定 2. 棧面板a 是一種非常簡潔的面板,它的作用是將所包含的元素按一行或一列的方式排列。通常不會(huì)用棧面板來布局整個(gè)用戶界面。它的最大用途就是排列一些比較小的元素,好比html里的ul無序列表WPF通過兩種方法來解決元素的布局
2、問題,該策略取決于可用空間大小是否固定。SizeToContent="Height"設(shè)置某個(gè)空間的大小是不是由內(nèi)容制定 相關(guān)的屬性還有margin 和 padding,這樣設(shè)置的控件都會(huì)通過窗體大小的變化而產(chǎn)生相應(yīng)的變化,該值與設(shè)備無關(guān)如果設(shè)置height 和 width則是固定大小3. DockPanela 為了滿足Dock的停靠要求必須在子控件上使用附加屬性。DockPanel.Dock4. WrapPanel環(huán)繞面板a 通過Orientation屬性設(shè)置排列的方向和棧面板類似不過環(huán)繞面板到最后的時(shí)候會(huì)自動(dòng)換行,很類似listview5. 畫布Canvasa 是面板中比
3、較簡單的一種b 類似html中的絕對(duì)定位后通過橫縱坐標(biāo)控制其位置(附加屬性Canvas.Left 和Canvas.Top Canvas.Right Canvas.Bottom)該值與設(shè)備無關(guān)6. InkCanvas允許畫筆的Canvas在WPF中實(shí)現(xiàn)允許使用墨跡的控件。如:1: <Window x:Class="WPFLayoutDemo.InkCanvasDemo"2: xmlns="3: xmlns:x="4: Title="InkCanvasDemo" Height="200" Width="
4、300">5: <InkCanvas>6: <InkCanvas.DefaultDrawingAttributes>7: <DrawingAttributes Color="Red" />8: InkCanvas.DefaultDrawingAttributes>9: <Image Width="155" Height="155" InkCanvas.Left="10" InkCanvas.Top="10" 10: Source=&
5、quot;Logo2.png"/>11: InkCanvas>12: Window>其他的功能與Canvas相近。7. Grid網(wǎng)格 a 網(wǎng)格是所有面板用最常用也最復(fù)雜的布局面板b 類似的是Html中的Table標(biāo)簽也有行,單元格,跨行,跨列之說c 思考:如上圖所示如何把里面的信息分成左右兩部分的?用棧面板可以實(shí)現(xiàn)么?d 嘗試下stackpanel的布局是否可以實(shí)現(xiàn)e 經(jīng)過上面的嘗試我們已經(jīng)可以看出stackpanel如果這么使用的話是非常蹩腳的。而且很低效f Grid網(wǎng)格面板就可以輕易解決(table不就很easy嘛)g 畫分割線的話可以弄個(gè)很窄的行填充一個(gè)矩形即
6、可h 加背景樣式可以用border控件可以使用GridSplit控件結(jié)合Grid控件實(shí)現(xiàn)類似于Windows應(yīng)用程序中SplitContainer的功能,如下面的應(yīng)用程序:要實(shí)現(xiàn)以下的功能: ButtonA和ButtonB、ButtonC組成的整體,可以左右拖動(dòng),改變兩者的寬度 ButtonB和ButtonC可以上下拖動(dòng),改變兩者的高度 實(shí)現(xiàn)以上功能的XAML代碼如下:1: <Grid>2: <Grid.ColumnDefinitions>3: <ColumnDefinition Width="88*" />4: <ColumnDe
7、finition Width="Auto" />5: <ColumnDefinition Width="190*" />6: Grid.ColumnDefinitions>7: <Grid.RowDefinitions>8: <RowDefinition Height="172*" />9: <RowDefinition Height="Auto" />10: <RowDefinition Height="90*" />11
8、: Grid.RowDefinitions>12: 13: <Button Content="ButtonA" Margin="3" Grid.Row="0" Grid.Column="0" Grid.RowSpan="3" />14: <Button Content="ButtonB" Margin="3" Grid.Row="0" Grid.Column="2" />15: <
9、Button Content="ButtonC" Margin="3" Grid.Row="2" Grid.Column="2" />16: 17: <GridSplitter Width="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 18: Grid.Row="0" Grid.Column="1" Grid.RowSpan=&
10、quot;3"> GridSplitter>19: <GridSplitter Height="3" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 20: Grid.Row="1" Grid.Column="2"> GridSplitter>21: Grid>其核心想法為: 定義3*3的表格,其中放置分割線的列(下標(biāo)為1)和行(下標(biāo)為1)的寬度和高度設(shè)置為Auto ButtonA放置在Row=0、Column=0、RowSpan3的單元格中 ButtonB放置在Row=0、Column=2的單元格中 ButtonC放置在Row=2、Column=2的單元格中 豎直分割線放置在Row=0、Column=1、ColSpan3的單元格中 水平分割線放置在Row=1、Column=2的單元格中 如下圖所示:8. 均布Grid 聰明的grida 通過設(shè)置Rows和Columns即可甚至可以不設(shè)置9. ViewBox視圖框a S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五暑期工勞務(wù)派遣與就業(yè)環(huán)境優(yōu)化合同
- 二零二五年度物流公司貨車司機(jī)服務(wù)質(zhì)量考核與獎(jiǎng)勵(lì)協(xié)議
- 2025年度網(wǎng)絡(luò)安全防護(hù)等級(jí)評(píng)定安全協(xié)議書
- 2025年度汽車零部件貨物運(yùn)輸安全與質(zhì)量協(xié)議
- 二零二五年度環(huán)保產(chǎn)業(yè)技術(shù)人才招聘與綠色創(chuàng)新協(xié)議
- 2025年度環(huán)保型清潔公司員工聘用合同書
- 二零二五年度水利設(shè)施監(jiān)控維保及災(zāi)害預(yù)警服務(wù)合同
- 二零二五年度海鮮水產(chǎn)店轉(zhuǎn)讓與經(jīng)營協(xié)議
- 二零二五年度倆人共同創(chuàng)業(yè)經(jīng)營咖啡廳合伙協(xié)議
- 二零二五年度農(nóng)村土地租賃合同模板(現(xiàn)代農(nóng)業(yè)物流園區(qū))
- 醫(yī)學(xué)專家談靈芝孢子粉課件
- 開心麻花《白蛇前傳》劇本
- 全部編版三年級(jí)語文下冊(cè)生字讀音、音序、偏旁及組詞
- 六年級(jí)下冊(cè)英語全冊(cè)教案(冀教版)
- 血小板血漿(PRP)課件
- 腹部開放性損傷急救
- 二輪 河流專題(精心)
- 球墨鑄鐵管安裝規(guī)范及圖示課件
- ERCP講義教學(xué)課件
- 《人類行為與社會(huì)環(huán)境》課件
- 兒科病毒性腦炎課件
評(píng)論
0/150
提交評(píng)論