WPF画布上的完美中心

时间:2009-05-20 17:04:55

标签: wpf layout canvas

由于画布需要一个顶部/左侧放置,如果你想要居中,就是在适当的Canvas.Top上添加一个网格,使用Horizo​​ntalAlignment =“Center”这是最好的方法,或者有更好的方法?

此剪辑是150X300画布,其中一些内容以网格为中心....

<Canvas Width="150" Height="300">
    <Grid Canvas.Top="75" Width="106" HorizontalAlignment="Center">
        {whatever you want centered}
    </Grid>
</Canvas>

2 个答案:

答案 0 :(得分:7)

盖伊的解决方案有效,但如果您正在进行热门测试,则可能需要调整z顺序和可见性。

另一个替代方法是在Canvas中使用Grid(如您在XAML中指定的那样),将Height / Width设置为(或绑定到)Canvas的高度/宽度。然后将Horizo​​ntalAlignment / VerticalAlignment设置为Center以获取Grid的内容。

答案 1 :(得分:4)

我不确定这是否符合您的确切要求,但如果您将画布和内容放在网格中作为对等体,它将为您提供居中的结果:

<Grid>
    <Canvas Width="150" Height="300"/>
    <Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="106" Content="Click"/>
</Grid>