none
Обтекание рисунка текстом в RichTextBox'e WPF RRS feed

  • Вопрос

  • Как реализовать обтекание рисунка текстом в RichTextBox'e или TextBlock'e?

    В поисковиках по поводу этого вопроса материала не нашёл, что удивительно.

    P.S.: Раньше обходился InlineUIContainer'ом и вставлял поочерёдности текст > рисунок > текст.

    16 августа 2011 г. 2:23

Ответы

  •     <RichTextBox Name="richTextBox1" ClipToBounds="True">
          <FlowDocument>
            <Paragraph>          
              Текст который не обекает картинку
              <Figure Width="200" WrapDirection="Both" VerticalAnchor="PageTop" HorizontalAnchor="PageCenter">
                <BlockUIContainer>
                  <Image Source="img.jpg"/>
                </BlockUIContainer>                 
              </Figure>
              Текст который обекает картинку. Изображение находится оп середине, а текст по бокам. Чтобы изменить положение картинки смотри свойства Figure
            </Paragraph>
          </FlowDocument>
        </RichTextBox>
    



     

    • Помечено в качестве ответа Max Efremov 16 августа 2011 г. 8:34
    16 августа 2011 г. 5:20
    Модератор

Все ответы

  •     <RichTextBox Name="richTextBox1" ClipToBounds="True">
          <FlowDocument>
            <Paragraph>          
              Текст который не обекает картинку
              <Figure Width="200" WrapDirection="Both" VerticalAnchor="PageTop" HorizontalAnchor="PageCenter">
                <BlockUIContainer>
                  <Image Source="img.jpg"/>
                </BlockUIContainer>                 
              </Figure>
              Текст который обекает картинку. Изображение находится оп середине, а текст по бокам. Чтобы изменить положение картинки смотри свойства Figure
            </Paragraph>
          </FlowDocument>
        </RichTextBox>
    



     

    • Помечено в качестве ответа Max Efremov 16 августа 2011 г. 8:34
    16 августа 2011 г. 5:20
    Модератор
  • Спасибо ulcer'у!

    Перевёл на C# может кому-нибудь понадобится:

     

    FlowDocument doc = new FlowDocument();
    Paragraph par1 = new Paragraph();
    Paragraph par2 = new Paragraph();
    
    Run txt1 = new Run("Текст который не обтекает картинку");
    
    Run txt2 = new Run("Текст который обтекает картинку");
    
    Image image = new Image();
    image.Source = (ImageSource)((new ImageSourceConverter()).ConvertFromString(@"c:\photo.jpg"));
    
    BlockUIContainer cont = new BlockUIContainer(image);
    Figure figure = new Figure(cont);
    figure.Width = (new FigureLength(200));
    figure.WrapDirection = WrapDirection.Both;
    figure.VerticalAnchor = FigureVerticalAnchor.PageTop;
    figure.HorizontalAnchor = FigureHorizontalAnchor.PageLeft;
    par1.Inlines.Add(txt1);
    par2.Inlines.Add(figure);
    par2.Inlines.Add(txt2);
    doc.Blocks.Add(par1);
    doc.Blocks.Add(par2);
    richtxt.Document = doc;
    


     



    16 августа 2011 г. 8:37