2011-12-15 67 views
10

我正在使用Windows 8 Metro中的XAML。如何擺脫按鈕周圍的額外邊距?

我有一個多行的網格。第一行包含一個按鈕,第二行包含一個圖像。圖像寬度爲600單位,並且該按鈕具有圖像內容。問題是無論我如何設計按鈕的樣式,它的左邊緣都不匹配圖像的左邊緣。儘管我已經設置了這些設置,但它看起來像按鈕在邊框外還有一個額外的邊距,儘管我已經將按鈕的邊距(以及填充和邊框厚度)設置爲0.

這是哪裏邊框從哪裏來?我如何擺脫它?我嘗試使用模板值(下面)創建自定義樣式,但忽略了其他樣式設置。我找不到有關如何構建模板的很多有用的文檔 - 或者即使這是問題所在。

<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="Button"> 
      <Grid> 
       <ContentPresenter Content="{TemplateBinding Content}" Margin="0" /> 
      </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 
+0

這似乎是一個錯誤。帶圖像內容的按鈕在沒有圖像內容的情況下在按鈕的右側呈現兩個像素;這在垂直堆棧面板中更容易看到。而且可能會出現分數像素魔法,這也會導致人們在虛擬邊界上出現虛假邊界。 – AndrewS 2011-12-21 23:28:59

回答

15

這真的很煩人。這似乎爲我工作的解決方案是:

<Button Background="Crimson" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Stretch" 
    BorderThickness="0" 
    Margin="-3">Click me!</Button> 

祕訣在於保證金的負值。

+0

好吧,似乎工作,謝謝...負餘量值似乎對我來說是非常錯誤的,但無論什麼作品! – AndrewS 2012-02-15 18:03:00

相關問題