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