2011-08-17 4 views
2

私はリッチテキストボックスを持っています。ユーザーがテキストを入力すると、かなりの頻度でいくつかのページへのリンクを入力します。私がしたいことは、リンクを検出して実際のハイパーリンクにすることです。強調表示し、下線を引いてクリック可能にします。これは、2つのシナリオのための作品必要があります。ハイパーリンクを検出する

  • たときにユーザーがリンクを手動で(これはKeyDownイベントが発生したとき)
  • リンクは、「ペースト」機能

を使用して、リッチテキストボックスに追加されたときにI http://forum.phux.org/viewtopic.php?f=18&t=78を見つけましたが、すべての要件を満たしていません(たとえば、ハイパーリンクをクリックできず、リンクを検出するためのRegexにいくつかの欠点があります(例:httpsを認識しません)。 誰かが助けてくれますか?ハイパーリンクをクリック可能にする方法と正規表現を拡張する方法必要条件は?

+0

何の助けですか?正規表現を作成する? – stukselbax

+0

投稿を編集しました –

答えて

0

"(http | https)://([a-zA-Z0-9 \〜\!\ @#$ $%\^\ & \ * \(\)_ \ - \ = \ + \\\/\?\。\:\; \ '\、] *)? "

http/https用です。同じ方法で、ftp、files:///などを追加することができます。

あなたがそのように気にいらを行うことができますハイパーリンクのクリック可能にするには:

MatchedTextは
FlowDocument myFlowDoc = new FlowDocument(); 
// Add hyperlink to the FlowDocument. 
myFlowDoc.Blocks.Add(new Hyperlink(new Run(MatchedText))); 

- 正規表現の結果です。しかし、Add()だけでなく、一致したテキストの開始位置と終了位置を見つけて、上のような動作を実行する必要があります。

関連する問題