Сохраняйте плавающий элемент в той же строке в WPF FlowDocument

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

<FlowDocument ColumnWidth="999999">
        <Section>
            <Paragraph>
                <Floater HorizontalAlignment="Left" Width="200">
                    <Paragraph>
                            <Run Text="Hello World Left"/>
                    </Paragraph>
                </Floater>
                <Floater HorizontalAlignment="Right" Width="200">
                    <Paragraph>
                            <Run Text="Hello World Right"/>
                    </Paragraph>
                </Floater>
            </Paragraph>
        </Section>
</FlowDocument>

Я ожидал, что они появятся в одной строке с левой и правой стороны страницы. Однако правая часть сдвигается вниз на линию:

введите здесь описание изображения

Как я могу сохранить правый плавающий элемент на той же высоте, что и левый?


person k29    schedule 13.02.2017    source источник
comment
Я думаю, что ширина игнорируется с Floater, и они берут ширину своего столбца. Проверьте Примечания для Floater в MSDN.   -  person Bradley Uffner    schedule 14.02.2017
comment
При внимательном чтении примеров кажется, что ширина задана как двойное, представляющее отношение его ширины к ширине его родительского элемента. Таким образом, 0.5 будет половиной ширины столбца.   -  person Bradley Uffner    schedule 14.02.2017
comment
Комментарии к примеру в MSDN, похоже, не согласуются с тем, что говорится в документации, поэтому я не уверен, как это работает на самом деле. Я бы порекомендовал проверить значение чего-то вроде 0.33, чтобы убедиться, что оно имеет какой-либо эффект.   -  person Bradley Uffner    schedule 14.02.2017


Ответы (1)


Не знаю, почему это работает (может быть, с выступом или отступом), установите пустой прогон в качестве первой строки абзаца:

               <Paragraph >
                    <Run /> 
                    <Floater HorizontalAlignment="Left" Background="AliceBlue" 
                             BaselineAlignment="TextBottom" Width="200">
                        <Paragraph>
                            <Run Text="Hello World Left"/>
                        </Paragraph>
                    </Floater>
                    <Floater HorizontalAlignment="Right" Background="AntiqueWhite" 
                             BaselineAlignment="TextBottom" Width="200">
                        <Paragraph>
                            <Run Text="Hello World Right"/>
                        </Paragraph>
                    </Floater>
                </Paragraph>
person Ron    schedule 14.02.2017