您是否在画布上设置了明确的尺寸?画布的尺寸并不适合其内容,因此除非您明确指定画布的大小,否则当您将它们全部放入堆叠面板时,它们的内容将显示在彼此之上,如您所解释的。这是因为画布儿童相对于其的位置(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>
你会看到文本的两条线叠加在另一个之上。
现在试试这个:
<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>
,你会看到你想要的间距。
希望有所帮助。
您是否添加了Canvasses或UserControls?你(双)检查他们没有设置位置/大小信息吗?也许你应该写一些代码。 – 2009-07-30 11:24:23