トップ回答者
RichTextBoxにハイパーリンクを表示し、それをクリックしてリンクを表示したいと思います。

質問
-
いつもお世話になります。
VisualC#2010、Windows7での動作について質問があります。
RichTextBox(WPF)にハイパーリンクを表示し、それをクリックしてリンクを表示したいと思います。
http://msdn.microsoft.com/ja-jp/library/aa970779.aspx?ppud=4
を参考に、StackPanel myStackPanel = new StackPanel();
// Create a FlowDocument to contain content for the RichTextBox.
FlowDocument myFlowDoc = new FlowDocument();// Create a Run of plain text and some bold text.
Run myRun = new Run("This is flow content and you can ");
Bold myBold = new Bold(new Run("edit me!"));Hyperlink MyLink = new Hyperlink();
MyLink.Inlines.Add("http://www.msdn.com");
MyLink.NavigateUri = new Uri("http://www.msdn.com");
// Create a paragraph and add the Run and Bold to it.
Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(myRun);
myParagraph.Inlines.Add(myBold);
myParagraph.Inlines.Add(MyLink);// Add the paragraph to the FlowDocument.
myFlowDoc.Blocks.Add(myParagraph);RichTextBox myRichTextBox = new RichTextBox();
// Add initial content to the RichTextBox.
myRichTextBox.Document = myFlowDoc;myStackPanel.Children.Add(myRichTextBox);
this.Content = myStackPanel;としてみましたが、リンクの上にもっていっても、ポインタが変わったりしません。
リンク部分は、自分で実装するのでしょうか?
その場合、RichTextBoxにはMouseClickのイベントハンドラがないので、MouseDoubleClickにするか、MouseUpにするしかないかと思いますが、どちらも実行してみると、選択範囲がなくなってしまう(URLを選択していても、ダブルクリックした瞬間に単語だけを選択してしまう)のです。
private void richTextBox_MouseDoubleClick (object sender, MouseButtonEventArgs e) {
string url = richTextBox.Selection.Text;
System.Diagnostics.Process.Start(url);
}private void richTextBox_MouseLeftButtonUp (object sender, MouseButtonEventArgs e) {
string text = richTextBox.Selection.Text;
System.Diagnostics.Process.Start(text);
}
どのようにしたら、RichTextBoxにハイパーリンクを表示してクリックしてリンクを開けるか、アドバイスお願いします。
その後調べたところ、System.Windows.Formsの場合には、
protected void Link_Cliked(object senedr, System.Windows.Forms.LinkClickedEventArgs e)を見つけました。これはFormsのだ。FormsでのRitchTextBoxはこれでよい。が、System.Windows.Controls.RitchTextBoxではだめみたいです。
protected void Link_Cliked(object senedr, System.Windows.Controls.LinkClickedEventArgs e)とすると、LinkClickedEventArgsがないという。
回答
すべての返信
-
こんにちは、d-kot さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
しばらく時間が経ちましたが、totojo さんからの情報は確認されましたか?
参考になる情報をいただいていると思われましたので、勝手ながら私のほうで一旦回答としてマークさせていただきました。
totojo さん、アドバイスありがとうございます。
もしまだ解決していない場合には、確認されたことなどとともに情報更新をお願いしますね。
今後とも MSDN フォーラムをよろしくお願いいたします。
______________________
日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海