如何摆脱Button周围的额外余量?

时间:2011-12-15 01:38:59

标签: xaml microsoft-metro

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

1 个答案:

答案 0 :(得分:15)

真的很烦人。似乎对我有用的解决方案是:

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

秘密是保证金的负值。