Добавление разрыва строки / новой строки в панель переноса WPF - PullRequest
12 голосов
/ 27 августа 2010

Кто-нибудь знает, возможно ли вообще ввести разрыв строки на панели переноса WPF? Это идет вразрез с тем, для чего предназначена оберточная панель, поэтому я не уверен, возможно ли это.

А если это не так, есть ли другой элемент управления WPF, который фактически позволяет мне вводить разрыв строки и поддерживает добавление дочерних элементов (мои собственные пользовательские элементы управления?)

Ответы [ 2 ]

15 голосов
/ 27 августа 2010

Это разрыв строки в WrapPanel:

<WrapPanel>
    <TextBlock Text="&#xD;"/>
</WrapPanel>

Обновление

Я думаю, я понял, что вы пытаетесь спросить.Если у вас есть WrapPanel, который выкладывается по ряду, и вы хотите переместить его в следующий ряд, вы можете заменить один WrapPanel на

 <StackPanel Orientation="Vertical">
  <StackPanel Orientation="Horizontal">
   <!-- items -->
  </StackPanel>
  <StackPanel Orientation="Horizontal">
   <!-- items -->
  </StackPanel>
  <StackPanel Orientation="Horizontal">
   <!-- items -->
  </StackPanel>
 </StackPanel>

. Если вы хотите сохранить переносотдельные строки можно использовать WrapPanel s внутри вертикали StackPanel.

12 голосов
/ 30 сентября 2014
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>
...