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 tel开发者_高级运维l me if I am doing anything wrong?
How about a Grid
or, even easier, UniformGrid
?
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" />
What are you doing wrong? You are ignoring MSDN section on the layout system in WPF :).
You can use Grid and set HorizontalAlignment/VerticalAlignment of buttons to Center, and grid column width should be *.
精彩评论