Делаем URL кликабельными по текстовому блоку - PullRequest
1 голос
/ 16 декабря 2009

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

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

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

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

Спасибо.

Ответы [ 4 ]

3 голосов
/ 16 декабря 2009
<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

1 голос
/ 16 декабря 2009

Что-то вроде ...

<TextBlock>
    <Hyperlink Name="btnOpen" Click="btnOpen_Click">
        <TextBlock Text="Click to Open" />
    </Hyperlink>
</TextBlock>
1 голос
/ 16 декабря 2009

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

0 голосов
/ 16 декабря 2009

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

...