Adding a linebreak/new line to a WPF Wrap Panel
public class NewLine : FrameworkElement{ public NewLine() { Height = 0; var binding = new Binding { RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(WrapPanel), 1), Path = new PropertyPath("ActualWidth") }; BindingOperations.SetBinding(this, WidthProperty, binding); }}<WrapPanel> <TextBox Text="Text1"/> <TextBox Text="Text2"/> <my:NewLine/> <TextBox Text="Text3"/> <TextBox Text="Text4"/></WrapPanel>
This is a line break in a WrapPanel
:
<WrapPanel> <TextBlock Text="
"/></WrapPanel>
Update
I think I figured out what you're trying to ask. If you have a WrapPanel
that is laying out by row, and you want to force it to the next row, you can replace the single WrapPanel
with
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Horizontal"> <!-- items --> </StackPanel> <StackPanel Orientation="Horizontal"> <!-- items --> </StackPanel> <StackPanel Orientation="Horizontal"> <!-- items --> </StackPanel> </StackPanel>
If you want to preserve wrapping of individual rows, you can use WrapPanel
s inside the vertical StackPanel
.