WPF - Canvas中的中心控件(标签)

时间:2010-12-16 01:55:57

标签: c# wpf canvas label

问候

我正在尝试修复WPF应用程序中控件的位置。在我的应用程序中,我有几个标签,每个标签都在不同的画布中。我试图将标签置于画布中心。我目前为一个Label提供的代码如下:

<Canvas Height="42" HorizontalAlignment="Left" Margin="0,1,0,0" Name="canvasPlayer1" VerticalAlignment="Top" Width="172" >
    <Label Content="" Foreground="White" FontSize="15" FontFamily="Eurostile LT ExtendedTwo" Height="Auto" HorizontalAlignment="Center" Margin="0,5,0,0" Name="labelPlayer1Name" VerticalAlignment="Center" Width="Auto" />
</Canvas>

现在对于初学者来说,问题在于它根本不会使文本居中,而是保持在原始位置。我想要实现的是将标签的内容集中在该画布中,但它不能超过画布的宽度。

欢迎有用的建议!如果您对我的思维模式有任何意见来解决这个问题,请通知我!

提前谢谢

1 个答案:

答案 0 :(得分:16)

您不应该使用Canvas。对齐属性和边距对Canvas中布置的元素没有影响。您应该使用的是网格。 Canvas对大多数布局场景并不是特别有用。

<Grid Height="42" HorizontalAlignment="Left" Margin="0,1,0,0" 
      Name="canvasPlayer1" VerticalAlignment="Top" Width="172" >
    <Label Content="" Foreground="White" FontSize="15" 
           FontFamily="Eurostile LT ExtendedTwo" 
           HorizontalAlignment="Center" Margin="0,5,0,0" 
           Name="labelPlayer1Name" VerticalAlignment="Center" />
</Grid>