Я нашел два возможных решения:
InlineUIContainer
InlineUIContainer
само по себе, кажется, опускается на следующую строку по мере необходимости.Поэтому, когда вы используете их вместе:
<FlowDocument>
<Paragraph >
<InlineUIContainer>
...
</InlineUIContainer>
...
</Paragraph>
</FlowDocument>
... тогда вы получите что-то вроде этого: ![Tiles shown to be wrapping with InlineUIContainer](https://i.stack.imgur.com/MZ8fY.png)
Если вы положите InlineUIContainer
s внутри TextBlock
внутри Paragraph
(и установите TextBlock.TextWrapping="Wrap"
), тогда плитки больше не будут равномерно распределяться по горизонтали, а будут складываться сбоку, как вы могли ожидать.И вы можете получить нулевой пробел между ними, убедившись, что между любыми закрывающими и открывающими тегами InlineUIContainer
нет разрывов строк или других пробелов.Тогда это выглядит так: ![Tiles shown to be wrapping and stacked tightly](https://i.stack.imgur.com/hnuwR.png)
Figure
Figure
, по-видимому, предназначено больше для позиционирования изображений, но путем установки его Margin
иPadding
до нуля и присвоения ему фиксированного Width
и установки его HorizontalAnchor
:
<Window>
<Window.Resources>
<Style TargetType="Figure">
<Setter
Property="HorizontalAnchor"
Value="ColumnLeft"/>
<Setter
Property="Margin"
Value="0"/>
<Setter
Property="Padding"
Value="0"/>
<Setter
Property="Width"
Value="1in"/>
</Style>
</Window.Resources>
<FlowDocument>
<Paragraph>
<Figure>
<BlockUIContainer>
...
</BlockUIContainer>
</Figure>
...
</Paragraph>
</FlowDocument>
</Window>
... тогда вы получите что-то подобное в режиме прокрутки: ![Tiles shown to be wrapping with Figure](https://i.stack.imgur.com/jmeSO.png)
* 1040.s взаимодействуют с другими строками в
Paragraph
.Они могут привязываться только к одной стороне или к другой (в соответствии со свойством
HorizontalAnchor
), а не к потоке.
По этим причинам я думаю, что InlineUIContainer
может быть лучшим решением.