キャンバスに明示的なサイズを設定しましたか? キャンバスのサイズはコンテンツに合わせて調整されないため、キャンバスのサイズを明示的に指定しない限り、キャンバスをすべてスタック パネルに配置すると、説明したようにコンテンツが重なり合って表示されます。これは、キャンバスの子が相対的に配置される (0,0) 位置がスタックパネルの左上になるためです (すべてのキャンバスとそのすべての子の同じポイント)。
状況を強調するために、 Kaxamlで次のことを試してください。
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<StackPanel>
<Canvas>
<TextBlock Text="Child of canvas one" />
</Canvas>
<Canvas>
<TextBlock Text="Child of canvas two" />
</Canvas>
</StackPanel>
</Page>
2 行のテキストが重なり合っていることがわかります。
今、これを試してください:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<StackPanel>
<Canvas Height="15">
<TextBlock Text="Child of canvas one" />
</Canvas>
<Canvas Height="15">
<TextBlock Text="Child of canvas two" />
</Canvas>
</StackPanel>
</Page>
そして、あなたが望む間隔が表示されます。
それが役立つことを願っています。