Альтернативный подход к решению CodeNaked может заключаться в использовании DockPanel, где Canvas занимает все оставшееся пространство автоматически, и вам не нужно обрабатывать разбиения.
Конечно, это ограничивает стыковку только четырьмя ребрами (с возможностью наложения по краям), но я предпочитаю DockPanel, когда я делаю начальный интерфейс, так как они довольно быстрые и простые в использовании.настройка по сравнению с настройкой Grid, которая может довольно быстро усложниться.
<DockPanel LastChildFill="True">
<ListBox DockPanel.Dock="Left" Width="350"/>
<Canvas />
</DockPanel>