VerticalAlignment =画布内的标签的"拉伸"不起作用

Mar*_*los 4 wpf xaml canvas .net-4.0 vertical-alignment

如何使用VerticalAlignment="Stretch"带有LabelCanvas?我正在尝试将按钮中的文本"取消"居中,如下面的代码所示.使用固定高度和宽度的标签不是一个理想的选择.

<Button Name="buttonCancel" Width="80" Height="40" IsCancel="True" Padding="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <Canvas>
        <Label Canvas.Top="0" Canvas.Left="0" Padding="0" FontSize="10">Esc</Label>
        <Label VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">Cancel</Label>
    </Canvas>
</Button>
Run Code Online (Sandbox Code Playgroud)

Ros*_*oss 7

使用绑定到CanvasActualWidth:

<Canvas>
    <Label Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type Canvas}}, Path=ActualWidth}">...</Label>
</Canvas>
Run Code Online (Sandbox Code Playgroud)

但如上所述,如果您对动态拉伸布局感兴趣,Canvas则不是理想的控制选择.