溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Grid   UniformGrid 容器(五)

發(fā)布時(shí)間:2020-06-14 11:40:03 來源:網(wǎng)絡(luò) 閱讀:1970 作者:kyirsheng 欄目:編程語言

一、Grid
Grid 是以表格形式組織控件的一種布局方式,與 Java AWT 中的 GridLayout 類似,但
區(qū)別在于
WPF 中的 Grid 的每一個(gè)單元格中可以放置多個(gè)控件,但控件可能會(huì)層疊在一

WPF 中的 Grid 支持單元格的合并,類似于 HTML 中的 table td 中的 row
span 和 colspan
Grid 中的行和列可以自定義高度(Height)和寬度(Width)
在設(shè)置高度和寬度時(shí)可以采用兩種寫法:
1)Height=”60”:不加“星號(hào)”表示固定的高度
2)Height=”60*”:加“星號(hào)”表示“加權(quán)”的高度,在調(diào)整窗體大小時(shí),此
高度或?qū)挾葧?huì)按窗體大小改變的比例進(jìn)行縮放
如:
1: <Grid>
2: <Grid.RowDefinitions>
3: <RowDefinition Height="60" />
4: <RowDefinition Height="202*" />
5: </Grid.RowDefinitions>
6: <Grid.ColumnDefinitions>
7: <ColumnDefinition/>
8: <ColumnDefinition/>
9: </Grid.ColumnDefinitions>
10: <Button Grid.Column="0" Grid.Row="0" Height="30" VerticalA
lignment="Top">ButtonA</Button>
11: <Button Grid.Column="0" Grid.Row="0" Height="30" VerticalA
lignment="Bottom">ButtonB</Button>
12: <Button Grid.Column="1" Grid.Row="0">ButtonC</Button>
13: <Button Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2">B
uttonD</Button>
14: </Grid>

Grid   UniformGrid 容器(五)

二、使用 GridSplit 分割
可以使用 GridSplit 控件結(jié)合 Grid 控件實(shí)現(xiàn)類似于 Windows 應(yīng)用程序中 SplitContai
ner 的功能,如下面的應(yīng)用程序:

Grid   UniformGrid 容器(五)

要實(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: <ColumnDefinition 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: </Grid.RowDefinitions>
12:
13: <Button Content="ButtonA" Margin="3" Grid.Row="0" Grid.Col
umn="0" Grid.RowSpan="3" />
14: <Button Content="ButtonB" Margin="3" Grid.Row="0" Grid.Col
umn="2" />
15: <Button Content="ButtonC" Margin="3" Grid.Row="2" Grid.Col
umn="2" />
16:
17: <GridSplitter Width="3" HorizontalAlignment="Stre
tch" VerticalAlignment="Stretch"
18: Grid.Row="0" Grid.Column="1" Grid.RowSpan="3">
</GridSplitter>
19: <GridSplitter Height="3" VerticalAlignment="Stretch" Horiz
ontalAlignment="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、RowSpan=3 的單元格中
ButtonB 放置在 Row=0、Column=2 的單元格中
ButtonC 放置在 Row=2、Column=2 的單元格中
豎直分割線放置在 Row=0、Column=1、ColSpan=3 的單元格中
水平分割線放置在 Row=1、Column=2 的單元格中

如下圖所示:
Grid   UniformGrid 容器(五)

三、UniformGrid
UniformGrid 控件為控件提供了一種簡化的網(wǎng)格布局。當(dāng)控件添加到 Unif
ormGrid 時(shí),它們會(huì)排列在一個(gè)網(wǎng)格模式中,該網(wǎng)格模式會(huì)自動(dòng)調(diào)整以使控
件之間的距離保持均勻。單元格的數(shù)目將進(jìn)行調(diào)整,以適應(yīng)控件的數(shù)目。例如,
如果四個(gè)控件添加到 UniformGrid 中,它們將安排在包含四個(gè)單元格的網(wǎng)格中。
如:
1: <UniformGrid>
2: <Button Content="ButtonA" />
3: <Button Content="ButtonB" />
4: <Button Content="ButtonC" />
5: <Button Content="ButtonD" />
6: <Button Content="ButtonE" />
7: <Button Content="ButtonF" />
8: <Button Content="ButtonG" />
9: <Button Content="ButtonH" />
10: </UniformGrid>

Grid   UniformGrid 容器(五)

在使用 UniformGrid 的時(shí)候:
各單元格的大小完全相同
單元格的數(shù)量取決于放入的控件的數(shù)量,且單元格一定是行、列數(shù)相同的,即
1*1、2*2、3*3、4*4…的單元格分布

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI