A Canvas
автоматически не изменяет размер содержимого, которое оно содержит. Для этого вы можете использовать другой элемент макета, например Grid
. Но Canvas
удобен для определения положения детей, как вы уже сделали. Как и сейчас, ваш Canvas
имеет размер 0,0
, поэтому панель ItemsControl
укладывает их друг на друга.
Если вы хотите продолжать использовать Canvas
, просто укажите размер самостоятельно, например ::
<Canvas Width="300" Height="100" ...>
или любые другие значения имеют смысл для правильного взгляда.
Если вы переключитесь на Grid
, то вы можете указать положение детей, используя свойство Margin
. Обратите внимание, что Grid
без строк или столбцов по умолчанию накладывает элементы друг на друга, поэтому в этом отношении он очень похож на Canvas
. Просто сдвиньте их, используя Margin
.