O conteúdo do texto em um botão WPF não está sendo centralizado verticalmente
Existe uma razão para o conteúdo do texto de um botão WPF aparecer com espaço indesejado acima do texto?
Eu tenho um botão em um StackPanel. Esse botão é um botão simples de fechar, então eu quero que ele apareça como um botão quadrado com um "x" centralizado. Defina meu preenchimento como zero e defina HorizontalContentAlign e VerticalContentAlign como Center, mas o "x" ainda aparece na parte inferior do botão (ou mesmo truncado, devo ter meu FontSize muito grande em relação à minha altura). É como se houvesse algum preenchimento na parte superior do botão que evitasse que o texto usasse todo o espaço vertical.
Meu XAML é:
<StackPanel Orientation="Horizontal">
<Label Content="{Binding GenderFilter.Title}" FontWeight="Bold" Width="60" />
<Button Padding="0" Width="15" Height="15" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="12">x</Button>
<Label Content="{Binding GenderFilterExpander.SelectedValue}" />
</StackPanel>
O problema é exatamente o mesmo, devo definir minha propriedade VerticalContentAlign do botão como Stretch ou até Top. Se eu remover as propriedades Altura e Peso para que o botão determine seu próprio valor, o controle não aparecerá como um quadrado, mas como um retângulo na vertical e o "x" ainda não estará centralizado.
ATUALIZAÇÃO: Enquanto o botão e o conteúdo estão agora centralizados perfeitamente, o botão ainda está sendo exibido muito maior do que o necessário, como se estivesse sendo aplicado um preenchimento alto.
Minha definição de estilo de recurso agora é a seguinte:
<Style x:Key="ClearFilterButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Padding" Value="0" />
<Setter Property="Width" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=ActualHeight}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Content" Value="X" />
<Setter Property="FontSize" Value="8" />
</Style>
O botão em si é definido como:
<Expander.Header>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding GenderFilter.Title}" FontWeight="Bold" Width="60" />
<Button Style="{StaticResource ClearFilterButtonStyle}"
Visibility="{Binding GenderFilterExpander.ClearFilterVisibility}" />
<Label Content="{Binding GenderFilterExpander.SelectedValue}"
Visibility="{Binding GenderFilterExpander.SelectedValueVisibility}" />
</StackPanel>
</Expander.Header>
O Expander está dentro de um StackPanel dentro de um GroupBox dentro de um DockPanel.
Na exibição de design, os botões são dimensionados corretamente, contendo apenas o X, mas no tempo de execução, eles aumentam. Como posso corrigir isso?