Лично я предпочитаю делать это с сеткой, то есть:
<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-й столбцы будут соответствовать их содержимому, а первый заполнит оставшееся пространство. Если вы поместите каждую кнопку в соответствующий столбец, вы получите этот макет. (Обратите внимание, что вы, вероятно, захотите также изменить размер и поля кнопок, чтобы получить хороший интервал.)