默认按钮上的WPF按钮内容垂直对齐

默认按钮上的WPF按钮内容垂直对齐,wpf,xaml,expression-blend,Wpf,Xaml,Expression Blend,我无法在默认按钮上垂直居中文本(未使用样式或模板) 我看到像这样的线 ^^我至少没有在按钮1中设置任何文本高度 不确定是什么导致了这种行为,以及如何在进行本地化时有效地消除这种行为 我确实知道我可以设置-ve边距来精确对齐文本,但这可能会使另一种语言出错。这是基于默认字体族表达式混合的一些限制吗 这方面的任何帮助都会很好。看似微不足道,但似乎找不到一个像样的解释来解释是什么导致了这种行为 Xaml代码如下所示: <Window x:Class="TestButton.MainWindow

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

我看到像这样的线

^^我至少没有在按钮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>


这是它内部的工作方式。如果您想要更多的控制,只需用更多可自定义的东西填充按钮内容,而这些东西只是一个字符串。像这样:

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

钮扣

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

我猜文本相对于可能的重音(例如
Á
È
)垂直居中。如果在按钮中键入“J”或“J”如何?按钮没有
填充
属性,可以用来设置垂直间距吗?@他们有,但我猜OP正在寻找一个通用的解决方案,它独立于字体和内容。Hrrmm可能只是我,但我做了一个快速测试,我的文本垂直居中。我的按钮外观也与这些截图(Windows7)不同。您是否正在使用任何自定义控件模板或主题?为您的答复干杯,但这不是答案。使用嵌套的TextBlock元素,甚至使用contentpresenter和嵌套在堆栈面板中的模板,都可以获得相同的行为。这可能是内部行为,但添加TextBlock不会在这方面提供额外的控制。当文本块元素嵌套时,您会看到文本的垂直偏移量与文本块元素相同。这对我很有用,但我在Windows 7上。也许这会有所不同,因为即使是按钮外观对我来说也不一样(即使是在经典主题上)。为我解决了这个问题。