将换行符/换行添加到WPF换行面板

时间:2010-08-27 18:30:23

标签: wpf wrappanel

有没有人知道是否甚至可以在WPF Wrap面板中输入换行符?它违背了包装面板的用途,所以我不确定它是否可行。

如果不是,是否有任何其他WPF控件实际上允许我输入换行符并支持添加子项(我自己的自定义控件?)

2 个答案:

答案 0 :(得分:15)

这是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内使用StackPanel

答案 1 :(得分:11)

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>