Обтекание текста вокруг изображения или связывание двух текстовых блоков в C # WPF - PullRequest
3 голосов
/ 27 июля 2010

Я создаю программу, которая показывает текст и изображение в одном окне.Изображение находится в верхнем левом углу экрана, и текст начнет справа от него, а затем продолжится вниз под изображением.

В настоящее время я пытаюсь взять два текстовых блока (одинсправа от изображения и один ниже как изображения, так и первого текстового блока) и хотите, чтобы текст продолжался от одного блока к другому.Это идеальный подход, и если да, то как бы я это сделал?Есть ли лучший / более простой способ, чем этот, или я могу сделать это только с одним объектом?Спасибо,

Андрей

1 Ответ

21 голосов
/ 27 июля 2010

Я бы не рекомендовал использовать TextBlocks для достижения этого типа макета.Как предполагает Кирен, FlowDocument был бы идеальным для этого типа дизайна.Взгляните на этот фрагмент XAML и полученный снимок экрана приложения WPF, используя FlowDocument с элементом Paragraph и элемент Floater, содержащий изображение:

<Grid>
    <FlowDocumentScrollViewer>
        <FlowDocument>                
            <Paragraph>
                <Floater Width="130" HorizontalAlignment="Left" Margin="0,0,5,5" Padding="3">
                    <BlockUIContainer>
                        <Image Source="/FlowDocumentTest;component/dog.png" Width="100" /> 
                    </BlockUIContainer>
                </Floater>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                Suspendisse et diam felis. Vestibulum ac nisl mi. 
                Etiam varius velit lobortis nibh vestibulum nec consequat velit pellentesque. 
                Cras commodo libero placerat nulla dapibus eget porttitor ligula tempor. 
                Donec nisl massa, congue et pretium sit amet, feugiat vel est. 
                Nulla dapibus metus in justo pulvinar sit amet viverra lorem rhoncus. 
                Integer placerat interdum massa et mattis.</Paragraph>
        </FlowDocument>
    </FlowDocumentScrollViewer>
</Grid>

alt text

...