Текст Silverlight вокруг изображения - PullRequest
1 голос
/ 04 марта 2010

Я пытаюсь обернуть текст вокруг изображения, как если бы вы использовали свойство html float. Есть ли способ сделать это в silverlight 3?

Спасибо

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Я решил эту проблему некоторое время назад. Существует не очень хороший способ, о котором я знаю. Это будет работать, хотя это просто больно.

Чтобы упростить объяснение, почему бы нам не предположить, что изображение находится в верхнем правом углу страницы, а текст должен быть слева и ниже изображения.

Начните с размещения текстового блока и изображения рядом.

Рассчитывает самую нижнюю точку TextBlock и самую нижнюю точку изображения. (Используйте их верхние поля и фактические высоты.

Когда текстовый блок больше, вы перемещаете слово за раз во вновь созданный текстовый блок под изображением. Это создает иллюзию переноса текста.

    leftText.Text = textToWrap;
    bottomText.Text = string.Empty;
    Stack<string> wordsToMove = new Stack<string>();
    double imageBottomPoint = image1.ActualHeight + image1.Margin.Top;
    while ((leftText.ActualHeight + leftText.Margin.Top) > (imageBottomPoint + 14))
    {
        int lastSpace = leftText.Text.LastIndexOf(' ');
        string textToMove = leftText.Text.Substring(lastSpace).Trim();
        BlockedText.Text = leftText.Text.Remove(lastSpace);
        wordsToMove.Push(textToMove + ' ');
    }
    StringBuilder sb = new StringBuilder(bottomText.Text);
    while (wordsToMove.Count > 0)
    {
        sb.Append(wordsToMove.Pop());
    }

    bottomText.Text = sb.ToString();
0 голосов
/ 04 марта 2010

Вам нужно посмотреть RichTextBox и FlowDocument, если это WPF, и RichTextBox, если Silverlight 4.0.

Решение Silverlight 4.0

     <RichTextBox TextWrapping="Wrap"  IsReadOnly="False">  
       <Paragraph>  
            More text here .. 
            <InlineUIContainer>  
                <Image Source="abc.jpg"/>  
            </InlineUIContainer>   
            more and more text here;  
            <LineBreak />  
        </Paragraph>  
    </RichTextBox> 

WPF Solution-

<RichTextBox>
 <FlowDocument IsEnabled="true">
  <Paragraph>
    Text text ..
    <Button Margin="10,0,10,0" Content="A Button Float"/>
    More text..
  </Paragraph>
  <Paragraph TextAlignment="Center">
    <Image Source="abc.jpg"/>
     text text..
  </Paragraph>
  </FlowDocument>
</RichTextBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...