我在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 :(得分:15)
真的很烦人。似乎对我有用的解决方案是:
<Button Background="Crimson"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
BorderThickness="0"
Margin="-3">Click me!</Button>
秘密是保证金的负值。