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

1 回答 1

15

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

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

秘密在于margin的负值。

于 2012-02-09T01:18:00.753 回答