Как мне избавиться от лишнего поля вокруг кнопки? - PullRequest
10 голосов
/ 15 декабря 2011

Я работаю с XAML в Windows 8 Metro.

У меня есть сетка из нескольких строк.Первый ряд содержит кнопку, а второй изображение.Изображение имеет ширину в 600 единиц, а кнопка содержит изображение.Проблема в том, что независимо от того, как я стилизую кнопку, ее левый край не совпадает с левым краем изображения.При работе с настройками, похоже, что кнопка имеет дополнительное поле за пределами границы, хотя я установил поле (и отступы, и толщину границы) кнопки равным 0.

откуда эта граница?Как мне от этого избавиться?Я попытался создать собственный стиль со значением шаблона (ниже), но он игнорирует другие мои настройки стиля.Я не смог найти много полезной документации о том, как создать шаблон - или даже если это проблема.

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

1 Ответ

15 голосов
/ 09 февраля 2012

Это действительно раздражает.Решение, которое, кажется, работает для меня:

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

Секрет в отрицательном значении margin .

...