Есть ли причина, по которой текстовое содержимое кнопки WPF отображается с нежелательным пространством над текстом?
У меня есть кнопка в StackPanel . Эта кнопка представляет собой простую кнопку закрытия, поэтому я хочу, чтобы она отображалась в виде квадратной кнопки с символом «x» в центре. Я установил свой отступ на ноль и установил для HorizontalContentAlign и VerticalContentAlign значение Center, но «x» по-прежнему отображается в нижней части кнопки (или даже усечен, если мой размер FontSize слишком велик относительно моей высоты). Это как если бы в верхней части кнопки есть какой-то отступ, который не позволяет тексту использовать полное вертикальное пространство.
Мой 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>
Проблема точно такая же, если бы я установил для свойства кнопки VerticalContentAlign значение Stretch или даже Топ. Если я удалю свойства «Высота» и «Вес», чтобы кнопка определяла свои собственные, тогда элемент управления будет отображаться не в виде квадрата, а в виде вертикального прямоугольника, а «x» по-прежнему не центрирован.
ОБНОВЛЕНИЕ: по-прежнему отображается в нижней части кнопки (или даже сокращается, если мой размер FontSize слишком велик по сравнению с моей высотой). Это как если бы в верхней части кнопки есть какой-то отступ, который не позволяет тексту использовать полное вертикальное пространство.
Мой 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>
Проблема точно такая же, если бы я установил для свойства кнопки VerticalContentAlign значение Stretch или даже Топ. Если я удалю свойства «Высота» и «Вес», чтобы кнопка определяла свои собственные, тогда элемент управления будет отображаться не в виде квадрата, а в виде вертикального прямоугольника, а «x» по-прежнему не центрирован.
ОБНОВЛЕНИЕ: по-прежнему отображается в нижней части кнопки (или даже сокращается, если мой размер FontSize слишком велик по сравнению с моей высотой). Это как если бы в верхней части кнопки есть какой-то отступ, который не позволяет тексту использовать полное вертикальное пространство.
Мой 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>
Проблема точно такая же, если бы я установил для свойства кнопки VerticalContentAlign значение Stretch или даже Топ. Если я удалю свойства «Высота» и «Вес», чтобы кнопка определяла свои собственные, тогда элемент управления будет отображаться не в виде квадрата, а в виде вертикального прямоугольника, а «x» по-прежнему не центрирован.
ОБНОВЛЕНИЕ: Хотя кнопка и содержимое теперь идеально центрированы по центру, кнопка по-прежнему отображается намного больше, чем нужно, как если бы было применено высокое значение Padding.
Мое определение стиля ресурса теперь выглядит следующим образом:
<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>
Кнопка сам определяется как:
<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>
Expander находится внутри StackPanel внутри GroupBox внутри DockPanel.
В представлении дизайна кнопки имеют правильный размер, только содержат X, но во время выполнения они увеличиваются. Как я могу это исправить?