2012-02-17 5 views
1

пытается первый раз WPF пользователь. Я прочитал некоторые документы WPF, но не получаю разметку кнопок. Я пытаюсь получить макет ниже - там, где есть кнопка в нижнем левом углу и две в правом нижнем углу.Как выровнять кнопки на противоположных сторонах окна в WPF?

Можно ли это сделать с помощью одного StackPanel? Я безуспешно пытался использовать это вместе с атрибутами кнопок HorizontalAlignment.

Уместнее ли использовать сетку из 1 строки, 2 столбца, причем каждая ячейка имеет StackPanel?

Любые предложения, высоко оцененные, спасибо!

desired layout

ответ

1

Лично я предпочитаю делать это с помощью сетки, то есть:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 

    <Button Grid.Column="0" Width="100">b1</Button> 
    <Button Grid.Column="1" Width="100">b2</Button> 
    <Button Grid.Column="2" Width="100">b3</Button> 
</Grid> 

Это заставит 2-го & 3-й столбцов, чтобы соответствовать их содержанию, и первым, чтобы заполнить остальные пространства. Если вы поместите каждую кнопку в соответствующий столбец, вы получите этот макет. (Обратите внимание, что вы, скорее всего, захотите отрегулировать размер и поля на кнопках, чтобы получить хороший интервал.)

+0

Вы должны каким-то образом ограничить ширину левой кнопки, иначе она будет растягиваться чтобы заполнить весь столбец. – ChrisF

+0

Это похоже на использование таблицы HTML для макета по сравнению с HTML-div? например считается ли «нормально» использовать сетки для макета? – jglouie

+0

@ChrisF Был уже сделан;) –

Смежные вопросы