2012-07-16 65 views
10

我想用標籤製作一個小虛擬鍵盤。以下是我的鍵盤在XAML(但不僅僅是3項):如何刪除WPF標籤中文字的邊距?

<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> 

這樣做的問題是,有周圍的標籤文本太多的空間,從而導致鍵盤比大得多它需要。如果我手動設置標籤的高度和寬度,那麼(1)不會考慮字體的差異,(2)會剪切部分字母而不是頂部和左邊距。有沒有其他方法可以將這些邊距縮小爲與文本本身大小相同?

+2

您是否嘗試將填充設置爲0? – Vale 2012-07-16 09:21:26

+3

OT:如果您計劃僅在「Label」中使用文本,請使用「TextBlock」而不是「Label」。較少的資源。 – Silvermind 2012-07-16 09:30:09

+0

@Silvermind謝謝,把它作爲答案! – Matt 2012-07-16 09:48:02

回答

10

使用TextBlock代替Label

+8

這不是正確的答案。 'Label'不等同於'TextBlock'。考慮'Label.Target' ... – l33t 2015-06-16 15:26:30

+2

這個確定在這種情況下似乎是正確的答案。 – Batman 2015-07-15 18:17:08

+1

@Batman,它只是DataContext正確顯示TextBlock類型的正確答案。就我而言,我發現問題的唯一原因是我有另一種。 – 2015-09-26 10:30:02

28

設置填充爲0

我有同樣的問題。在檢查屬性窗口中標籤的屬性後,我發現標籤的默認填充是5.將它設置爲0就可以實現。

+1

謝謝,這對我來說算得了! :-) – 2016-01-21 14:59:38