WPF Canvas實(shí)現(xiàn)絕對(duì)定位
WPF開(kāi)發(fā)工具的出現(xiàn),為我們開(kāi)發(fā)人員帶來(lái)了全新的編程體驗(yàn)。開(kāi)發(fā)人員使用則款工具,徹底突破了圖形界面開(kāi)發(fā)的局限性,為編程帶來(lái)高效率。下面我們先來(lái)了解下WPF Canvas布局容器的相關(guān)概念。 #t#
Canvas是最精確的布局容器——絕對(duì)定位,此書(shū)作者不建議使用,因?yàn)榭丶拇笮∫话銜?huì)隨著內(nèi)部字體圖片的動(dòng)態(tài)生成而自動(dòng)變化,所以使用前三種布局是***的選擇,在這一點(diǎn)上,我也持同樣意見(jiàn)。
Canvas使用Top/Bottom屬性控制距離頂部/底部的高度;使用Left/Right屬性控制距離左/右的距離。有趣的是,調(diào)整Form的大小,第二個(gè)TextBlock的位置會(huì)相應(yīng)變化,但和底部以及右邊的距離是不變的,代碼見(jiàn)下:
- < Canvas Background="Yellow">
- < TextBlock Canvas.Left="10"
- Canvas.Top="20">Hello
- < /TextBlock>
- < TextBlock Canvas.Right="10"
- Canvas.Bottom="20">world!
- < /TextBlock>
- < /Canvas>
此外,Canvas不會(huì)自動(dòng)裁減超過(guò)自身范圍的內(nèi)容,即多出的內(nèi)容會(huì)顯示在Canvas外面,那是因?yàn)槟J(rèn)ClipToBounds="False";如果設(shè)置ClipToBounds="True",則會(huì)裁剪多于內(nèi)容。
***,聯(lián)合使用ViewBox可以使自動(dòng)布局控件調(diào)整大小。