Добавление строки/новой строки в панель WPF Wrap Panel
Кто-нибудь знает, возможно ли вообще ввести разрыв строки в панели переноса WPF? Это идет вразрез с тем, для чего предназначена оберточная панель, поэтому я не уверен, если это возможно.
И если это не так, есть ли другой элемент управления WPF, который фактически позволяет мне вводить в него разрыв строки и поддерживает добавление дочерних элементов (мои собственные пользовательские элементы управления?)
Ответы
Ответ 1
Это разрыв строки в WrapPanel
:
<WrapPanel>
<TextBlock Text="
"/>
</WrapPanel>
Update
Думаю, я понял, что вы пытаетесь спросить. Если у вас есть WrapPanel
, который выкладывается по строке, и вы хотите принудительно выполнить его в следующей строке, вы можете заменить одиночный WrapPanel
на
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<!-- items -->
</StackPanel>
<StackPanel Orientation="Horizontal">
<!-- items -->
</StackPanel>
<StackPanel Orientation="Horizontal">
<!-- items -->
</StackPanel>
</StackPanel>
Если вы хотите сохранить обертку отдельных строк, вы можете использовать WrapPanel
внутри вертикального StackPanel
.
Ответ 2
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>