C# Canvas 控件
Canvas控件可以完全自由地對控件的位置進行安排。同時,對Canvas的子元素應用HorizontalAligment和 VerticalAligtimenl;屬性并不會改變這些元素的位置。
如之前的例子所示,可使用Margin屬性來定位元素,但最好使用Canvas類公開的Canvas.Left、Canvas.Top、Canvas.Right 和 Canvas.Bottom 附加屬性。
<Canvas...>
<Button Canvas.Top="10" Canvas.Left="10”,..>Buttonl</Button>
</Canvas>
上面這段代碼將Button控件定位到距離Canvas控件頂部和左側各10像素的位置。需要注意,Top和Left屬性的優(yōu)先級高于Bottom和Right屬性。例如,如果同時指定Top和Bottom屬性,Bottom屬性會被忽略掉。
下圖分別展示了在Canvas控件中放置兩個Rectangle控件,并將窗口調整為兩種不同大小后的情形。
其中一個Rectangle控件的位置相對于左上角進行設置,而另一個則相對于右下角進行設置。調整窗口大小 時,它們各自的相對位置保持不變。還可以看到Rectangle控件堆疊順序的重要性。右下角的Rectangle控件位于上層,所以當兩者重疊時,用戶看到的是這個控件.
本示例的代碼如下所示(可在LayoutE?camples\Canvas.xaml下載文件中找到):
<Window x:Class="LayoutExamples.Canvas"
xmlns="http: //schemas. microsof t.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
xmlns:d="http: //schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http: //schemas.openxml formats.org/markup-compatibility/2006"
xmlns:local="clr-narnespace:LayoutExamples"
mc:Ignorable="d"
Title="Canvas" Height="300" Width="300">
<Canvas Background""AliceBlue,r>
<RecCangle Canvas . Lef t="50" Canvas.Top="50" Height="40" Width="100"
Stroke="Black" Fill="Chocolate" />
<Rectangle Canvas.Right="50" Canvas.Bottom="50" Height="40" Width="100"
Stroke="Black" Fill="Bisque" />
</Canvas>
</Window>
點擊加載更多評論>>