有没有办法强制WrapPanel在WPF中插入“换行符”?

时间:2008-12-04 20:27:31

标签: wpf

如果我将元素插入到包装面板中,并且在下一行溢出之前面板中仍有空间,我可以专门将其包裹起来,以便后续元素位于下一行吗?

我正在寻找类似的东西:

<WrapPanel>
  <Element/>
  <Element/>

  <NewLine???/>

  <Element/>
  <Element/>
  <Element/>
</WrapPanel>

3 个答案:

答案 0 :(得分:20)

这有效:

<WrapPanel>
    <TextBlock>1</TextBlock>
    <TextBlock>2</TextBlock>
    <TextBlock>3</TextBlock>
    <TextBlock>4</TextBlock>

    <TextBlock Width="10000" Height="0" />

    <TextBlock>5</TextBlock>
    <TextBlock>6</TextBlock>
</WrapPanel>

我必须添加...这几乎是一个黑客。您可能需要考虑使用StackPanel,并在其中,有一个WrapPanel,其中包含您要包装的项目......示例:

<StackPanel>
    <WrapPanel>
        <TextBlock>1</TextBlock>
        <TextBlock>2</TextBlock>
        <TextBlock>3</TextBlock>
        <TextBlock>4</TextBlock>
    </WrapPanel>
    <WrapPanel>
        <TextBlock>5</TextBlock>
        <TextBlock>6</TextBlock>
    </WrapPanel>
</StackPanel>

答案 1 :(得分:1)

来自https://stackoverflow.com/a/3587172/3797778

只需添加:

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

答案 2 :(得分:0)

可以仅向要在新行上添加控件的边距:

<TextBlock Margin="0,20,0,0">5</TextBlock>