上一篇,介紹了Canvas布局控件在Blend中的使用,。本篇繼續(xù)介紹布局控件StackPanel,ScrollViewer和Border,。
相對(duì)于Grid和Canvas來(lái)說(shuō),StackPanel,ScrollViewer和Border是比較簡(jiǎn)單的布局控件,,實(shí)現(xiàn)的功能相對(duì)來(lái)說(shuō)單一,。
首先來(lái)說(shuō)說(shuō)StackPanel控件。從字面意思理解,,是堆棧面板的意思,。堆棧內(nèi)的所有內(nèi)容將按照順序進(jìn)行排列,排列方式分水平排列和垂直排列兩種方式,。
對(duì)于StackPanel的使用,,主要是對(duì)控件水平或者垂直排列,使用該控件排列控件,,比Grid設(shè)置表格控制要容易很多,。
例如,在Grid中要設(shè)置Row和Column,,然后將控件放置到各個(gè)Cell中,,才能達(dá)到對(duì)齊布局的效果,而在StackPanel中只要使用Orientation屬性控制就可以了,。
這里我們簡(jiǎn)單演示一下,,在Blend中應(yīng)用StackPanel
選中StackPanel后,,在主窗口畫(huà)一個(gè)StackPanel容器。
然后選擇按鈕控件,,在StackPanel中,,畫(huà)一個(gè)高為30的按鈕。然后選中該按鈕,,復(fù)制創(chuàng)建三個(gè)新按鈕,,在復(fù)制粘貼的時(shí)候,會(huì)發(fā)現(xiàn),,每次創(chuàng)建一個(gè)新按鈕會(huì)在布局中自動(dòng)向下排列,。這點(diǎn)和Grid和Canvas不同,在Grid和Canvas中復(fù)制粘貼控件,,將會(huì)自動(dòng)覆蓋上一個(gè)控件,,需要用ZIndex控制其位置。
選中StackPanel,,查看右邊Properties屬性欄,,其中Layout中多了一個(gè)Orientation選項(xiàng),默認(rèn)為Vertical垂直排列,。
點(diǎn)擊展開(kāi)下拉菜單,,可以看到Horizontal水平排列,選中后,,以上四個(gè)按鈕分布將自動(dòng)以水平方式排列,。
和Grid相同,StackPanel也支持Margin和Horizontal Alignment,,Vertical Alignment屬性,,這里我就不在贅述,詳細(xì)大家可以看“布局快速入門(mén)Grid”
ScrollViewer控件,,是從WPF中移植來(lái)的,,針對(duì)大內(nèi)容控件的布局控件。由于該控件內(nèi)僅能支持一個(gè)子控件,,所以在多數(shù)情況下,,ScrollViewer控件都會(huì)和Stackpanel,Canvas和Grid相互配合使用,。如果遇到內(nèi)容較長(zhǎng)的子控件,,ScrollViewer會(huì)生成滾動(dòng)條,提供對(duì)內(nèi)容的滾動(dòng)支持,。
創(chuàng)建一個(gè)ScrollViewer控件,,會(huì)看到該控件右邊自帶滾動(dòng)框,
我們將上例拖拽進(jìn)新創(chuàng)建的ScrollViewer控件,,Blend會(huì)提示按“Alt”將拖拽控件放入ScrollViewer,,
放置成功后,,由于內(nèi)容過(guò)長(zhǎng),ScrollViewer的滾動(dòng)條自動(dòng)激活,。對(duì)于ScrollViewer的滾動(dòng)條,,可以通過(guò)Properties屬性欄進(jìn)行設(shè)置控制,可以禁用,,隱藏,,或者設(shè)置僅在需要時(shí)候自動(dòng)顯示。
HorizontalScrollBarVisibility和VerticalScrollBarVisibility屬性:
Auto = 僅在需要時(shí)候自動(dòng)顯示滾動(dòng)條
Disabled = 禁用滾動(dòng)條
Hidden = 隱藏滾動(dòng)條
Visible =顯示滾動(dòng)條
Border控件,,是最簡(jiǎn)單的布局控件,,也是最早期的一款Silverlight布局控件,該控件允許用戶(hù)創(chuàng)建一個(gè)帶有邊框的布局控件,。使用Border控件唯一需要注意的是該控件內(nèi)僅能支持一個(gè)子控件,。
在Blend中,繪制Border控件同樣很簡(jiǎn)單,,
將上例中的StackPanel拖拽進(jìn)新創(chuàng)建的Border控件,。
Blend會(huì)提示按著“Alt”是將控件放置在Border中,,否則將修改Margin進(jìn)行重新布局,。這里我們按著Alt,完成拖拽,。
Blend自動(dòng)生成XAML代碼如下:
2 <StackPanel Margin="20,12,25,15" Orientation="Vertical">
3 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
4 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
5 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
6 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
7 </StackPanel>
8 </Border>
其中BorderBrush是邊框顏色,;
BorderThickness是邊框的寬度;
修改以上兩個(gè)屬性,,同樣可以在右邊的Properties屬性欄進(jìn)行修改,。
至此,Silverlight的布局控件,,我們已經(jīng)介紹完了,,筆者建議,在學(xué)習(xí)的過(guò)程中,,還要配合實(shí)踐,,這樣會(huì)達(dá)到熟練的效果。