WPF教程五 布局之Canvas面板

2021-09-07 08:40:16 字數 1925 閱讀 3489

canvas:畫布面板

畫布,用於完全控制每個元素的精確位置。他是布局控制項中最為簡單的一種,直接將元素放到指定位置,主要來布置圖面。使用canvas,必須指定乙個子元素的位置(相對於畫布),否則所有元素都將出現在畫布的左上角。調整位置用left、right、top和bottom四個附加屬性。如果canvas是視窗主元素(即最外層的布局面板是canvas),使用者改變視窗大小時,canvas也會隨之變化,子元素的位置也會隨之移動,以保證相對於canvas的位置屬性不變。

canvas允許子元素的部分或全部超過其邊界,預設不會裁剪子元素,同時可以使用負座標,即溢位的內容會顯示在canvas外面,這是因為預設 cliptobounds=」false」,因此畫布不需要指定大小。如果想複製畫布內容,將cliptobounds設為true即可。

1、子元素不超出邊界

使用xaml**實現:

1

"wpfdemo.mainwindow

"2 xmlns="

"3 xmlns:x="

"4 title="

canvas面板

" height="

237" width="

525" windowstartuplocation="

centerscreen

">56

"100

" borderbrush="

blue

">7"

200" canvas.top="

50" width="

100" borderbrush="

green

">8"

20" canvas.right="

10" canvas.bottom="

10" content="

按鈕">910

2、子元素超出邊界

使用xaml**實現:

1

"wpfdemo.mainwindow

"2 xmlns="

"3 xmlns:x="

"4 title="

canvas面板

" height="

237" width="

525" windowstartuplocation="

centerscreen

">56

"100

" borderbrush="

blue

">7"

200" canvas.top="

50" width="

100" borderbrush="

green

">8"

200" canvas.right="

10" canvas.bottom="

-130

" content="

按鈕">910

在xaml設計介面,超出的部分不會進行裁剪,如圖所示:

如果將cliptobounds屬性設為true,在設計介面將會對子元素的超出部分進行裁剪:

注意:要說明一點canvas內的子控制項不能使用兩個以上的canvas附加屬性,如果同時設定canvas.left和canvas.right屬性,那麼後者將會被忽略。

WPF布局篇 Canvas布局(一)

前言 1.本編主要總結canvas 的用法 canvas 是乙個最基本的布局容器,它不會自動調整內部控制項的大小 位置,它僅支援顯示座標定位。canves內部控制項的預設位置是左上角,可通過設定left,right,top,bottom屬性來調整控制項在canvas中的位置,canvas預設不會自動...

WPF教程四 布局之DockPanel面板

dockpanel 停靠面板 dockpanel定義乙個區域,在此區域中,您可以使子元素通過描點的形式排列,這些物件位於 children 屬性中。停靠面板類似於winform中控制項的dock屬性。dockpanel會對每個子元素進行排序,並將根據指定的邊進行停靠,多個停靠在同側的元素則按順序排序...

WPF 之 布局(三)

六 dockpanel dockpanel定義乙個區域,在此區域中,您可以使子元素通過描點的形式排列,這些物件位於 children 屬性中。停靠面板其實就是在winform類似於dock屬性的元 素。dockpanel會對每個子元素進行排序,並停靠在面板的一側,多個停靠在同側的元素則按順序排序。如...