由于画布需要一个顶部/左侧放置,如果你想要居中,就是在适当的Canvas.Top上添加一个网格,使用HorizontalAlignment =“Center”这是最好的方法,或者有更好的方法?
此剪辑是150X300画布,其中一些内容以网格为中心....
<Canvas Width="150" Height="300">
<Grid Canvas.Top="75" Width="106" HorizontalAlignment="Center">
{whatever you want centered}
</Grid>
</Canvas>
答案 0 :(得分:7)
盖伊的解决方案有效,但如果您正在进行热门测试,则可能需要调整z顺序和可见性。
另一个替代方法是在Canvas中使用Grid(如您在XAML中指定的那样),将Height / Width设置为(或绑定到)Canvas的高度/宽度。然后将HorizontalAlignment / VerticalAlignment设置为Center以获取Grid的内容。
答案 1 :(得分:4)
我不确定这是否符合您的确切要求,但如果您将画布和内容放在网格中作为对等体,它将为您提供居中的结果:
<Grid>
<Canvas Width="150" Height="300"/>
<Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="106" Content="Click"/>
</Grid>