默认按钮上的WPF按钮内容VerticalAlignment

时间:2012-12-19 14:48:43

标签: wpf xaml expression-blend

我无法将文本垂直居中于默认按钮(未使用样式或模板)

我看到了像

这样的话题

Text content in a WPF button not being centred vertically

^^我没有在按钮1中设置任何文本高度。

不确定导致此行为的原因以及如何在本地化进入时有效摆脱它。

我确实得到了我可以设置一个-ve边距来准确对齐文本,但这可能会使另一种语言变得棘手。这是基于默认字体系列表达式混合似乎强加的一些限制吗?

对此的任何帮助都会很棒。似乎微不足道,但似乎找不到导致这种行为的原因。

Xaml代码如下:

<Window x:Class="TestButton.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Button Content="ButtonFFAH" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" VerticalContentAlignment="Center"/>
  <Button Content="ButtonAH" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"
                Margin="80,0,0,0" Height="15.627"  VerticalContentAlignment="Center"/>        
</Grid>

Output

2 个答案:

答案 0 :(得分:2)

它是如何在内部运作的。如果您想要更多控制,只需使用更多可自定义的内容填充按钮内容即可。像这样:

<Button HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"
        Margin="80,0,0,0" Height="15.627"  VerticalContentAlignment="Center">
     <TextBlock VerticalAlignment="Center">ButtonAH</TextBlock>
</Button>

答案 1 :(得分:2)

明显的垂直错位是由于所有类型的重音或其他变音符号都会增加总字体高度。虽然实际的Button内容可能不包含此类字符,但垂直对齐必须考虑到这一点,以确保与具有相同“外部”对齐的其他按钮的公共基线对齐,例如在同一网格行中。