Элемент управления Canvas (холст) уникален среди всех элементов управления компоновкой, поскольку он единственный не выполняет совершенно никакой компоновки. Его функциональность похожа на элемент управления GroupBox, который вы, вероятно, использовали в проектах Windows Forms: дочерние объекты размещаются в элементе управления Canvas в координатах относительно самого холста. Здесь нет автоматического изменения размеров, упорядочения потоком, а также позиционирования холстом от имени дочерних элементов управления. Если необходимо что-то из этого набора, то вам нужно будет реализовать это самостоятельно. Это подчеркивает цель элемента управления Canvas: предоставить разработчику абсолютный контроль над позиционированием элементов.
На рис. 16.10 мы имеем элемент управления Canvas с четырьмя кнопками. Они все позиционированы относительно сторон контейнера Canvas ромбом.
Рис. 16.10. Элементы, прикрепленные при помощи DockPanel
Вот код XAML:
<Window х:Class="ContosoAvalon.Canvas"
xmlns="http: //schemas .microsoft.com/winfx/2006/xaml/presentation" xmlns: x="http: / /schemas .microsoft. com/winfx/2006/xaml" Title="Canvas" Height^'300" Width="300">
<Canvas>
<Button Canvas.Left="102" Canvas.Top="11" Height="23" Name="buttonl" Width="75">Button</Button>
<Button Canvas.Left="47" Canvas.Top="38" Height="23" Name="button2" Width="75">Button</Button>
<Button Canvas.Right="4 6" Canvas.Top="38" Height="23" Name="button3"
Width="75">Button</Button>
<Button Canvas.Left="102" Canvas.Top="99" Height="23" Name="button4" Width="75">Button</Button>
</Canvas>
</Window>
Обратите внимание, что мы дали координаты относительно указанных сторон холста. Если мы изменим размер окна, то кнопки соответственно переместятся. Если у вас нет крайней необходимости указывать положение элементов управления вручную (как это может быть в том случае, когда вы располагаете элементы управления нестандартным образом или используете элементы управления для рисования внутри окна), то рекомендуется использовать одну из других панелей, которая будет автоматически выполнять необходимую вам компоновку.