Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spacing buttons equally across a window in WPF

What's the best control to arrange buttons horizontally across a window in WPF? I am having trouble arranging the buttons evenly while resizing the window. I tried to use the stack panel but the buttons just stay at their position and do not space out to fill up the window space. Tried to use the dock panel as well but no luck yet.

Can anybody suggest me a good way to do it or tell me if I am doing anything wrong?

like image 942
Saurabh Lalwani Avatar asked Dec 15 '09 20:12

Saurabh Lalwani


2 Answers

How about a Grid or, even easier, UniformGrid?

like image 103
Kent Boogaart Avatar answered Sep 22 '22 09:09

Kent Boogaart


I'd like to see an example of how to easily get the UniformGrid to space the buttons equally if they are intended to retain their "natural" widths rather than being forced to have uniform widths.

In the meantime, perhaps this isn't the best solution, but it seems to work for me and might help the next person:

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

<Button x:Name="FirstBtn" Grid.Column="0" Content="_First" />
<!-- Skip column 1 so it will provide flexible space -->
<Button x:Name="SecondBtn" Grid.Column="2" Content="_Second" />
<!-- Skip column 3 -->
<Button Name="ThirdBtn" Grid.Column="4" Content="_Third" />
like image 31
Charles Jenkins Avatar answered Sep 21 '22 09:09

Charles Jenkins