15

WPF Wrap パネルに改行を入力することさえ可能かどうかは誰にもわかりませんか? ラップパネルの目的に反するので、それが可能かどうかはわかりません。

そうでない場合は、実際に改行を入力でき、子の追加をサポートする他の WPF コントロールはありますか (自分のカスタム コントロール?)

4

2 に答える 2

21
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>
于 2014-09-30T13:30:10.077 に答える
18

これは a の改行です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、vertical 内で sを使用できますStackPanel

于 2010-08-27T18:42:19.300 に答える