Из того, что я могу сказать в XamlPad, проблема заключается в том, что ваш Canvas не имеет явной высоты / ширины, а его HorizontalAlignment по умолчанию находится в середине границы. Без явной высоты и ширины граница, кажется, сжимается до 0 высоты и растягивается по ширине. Я предполагаю, что это потому, что ваша граница находится в StackPanel, так как размещение границы в сетке приводит к тому, что она ведет себя как ожидалось.
Лучше всего дать холсту явную высоту и ширину. Не уверен, что это то, что вы ищете.