如何删除WPF标签中文本的边距?

Mat*_*att 15 .net c# wpf user-interface label

我试图用标签制作一个小虚拟键盘.以下是我在XAML中的键盘(但只有3个键):

<StackPanel Orientation="Vertical">
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
        <Border BorderThickness="1" BorderBrush="DarkGray">
            <Label Content="A" FontSize="12" MouseDown="KeyButton_Click" />
        </Border>
        <Border BorderThickness="1" BorderBrush="DarkGray">
            <Label Content="B" FontSize="12" MouseDown="KeyButton_Click" />
        </Border>
    </StackPanel>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
        <Border BorderThickness="1" BorderBrush="DarkGray">
            <Label Content="C" FontSize="12" MouseDown="KeyButton_Click" />
        </Border>
    </StackPanel>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

问题在于标签中的文本周围有太多空间,导致键盘比需要的大得多.如果我手动设置标签的高度和宽度,那将(1)不考虑字体的差异,(2)将剪切部分字母而不是顶部和左边距.有没有其他方法可以将这些边距缩小到与文本本身大小相同的大小?

Sha*_*dog 50

将填充设置为0.

我有同样的问题.在检查属性窗口中标签的属性后,我发现标签的默认填充为5.将其设置为0就可以了.


Har*_*rry 12

TextBlock而不是Label

  • 这不是正确的答案.`Label`不等同于`TextBlock`.考虑`Label.Target` ...... (11认同)
  • 在这种情况下,这肯定似乎是正确的答案. (2认同)
  • 不,`TextBlock`在许多方面与`Label`不同。参见https://joshsmithonwpf.wordpress.com/2007/07/04/differences-between-label-and-textblock/ (2认同)