Сделать URL-адреса в текстовом блоке кликабельными

Я программирую небольшой клиент Twitter просто для удовольствия. У меня есть текст твита на TextBlock, и я хочу сделать URL кликабельными.

Я знаю, что мне нужно анализировать URL-адреса с помощью регулярного выражения, но... как мне поместить текст и ссылку на TextBlock?

У меня не может быть такой строки: Hello check my blog at <Hyperlink>http​://myblogurl.com</Hyperlink>, потому что TextBlock не анализирует теги.

Тогда как я могу получить TextBlock, у которого может быть ссылка, а может и нет?

Спасибо.


person Jesus Rodriguez    schedule 15.12.2009    source источник
comment
Вы читали этот вопрос? stackoverflow.com/questions/861409/   -  person Ragepotato    schedule 16.12.2009


Ответы (4)


<RichTextBox  IsDocumentEnabled="True">
        <FlowDocument>
          <Paragraph>
          This is a richTextBox. And this is a <Hyperlink NavigateUri="http://www.microsoft.com">Hyperlink</Hyperlink>.
          </Paragraph>
        </FlowDocument>
  </RichTextBox>

обсуждение MSDN

person Ragepotato    schedule 15.12.2009

Вместо использования TextBlock взгляните на использование WPF-версии RichTextBox. Это очень гибкое маленькое существо.

person Pete OHanlon    schedule 15.12.2009

Что-то типа...

<TextBlock>
    <Hyperlink Name="btnOpen" Click="btnOpen_Click">
        <TextBlock Text="Click to Open" />
    </Hyperlink>
</TextBlock>
person Daniel    schedule 16.12.2009

Вы можете проанализировать строку в коде позади и создать коллекцию элементов управления содержимым, изменить текстовый блок на панель переноса и установить дочерние элементы панели в созданную вами коллекцию.

person Daniel    schedule 16.12.2009