WPF の Web ページのように、テキストをクリックできるようにしたいと考えています。コントロールには、機能しないテキスト (表示用) と、完全にクリック可能な部分の両方が必要です。
ウィキペディアのように言います。
ただし、これは独立したスタンドアロンのオフライン アプリです。
いろいろ試しましたが、できませんでした。特に、クリックが Web ページのように機能しません。つまり、1 クリックでツール内の URL が開きます。
本格的な FlowDocument である必要がない場合は、単純な古い WPF TextBlock を使用して、そこにハイパーリンクを配置できます。
<TextBlock>
Here's some text with a
<Hyperlink NavigateUri="Page2.xaml">link to another XAML page</Hyperlink>
and a
<Hyperlink NavigateUri="http://msdn.microsoft.com/">link to the
Web</Hyperlink>.
</TextBlock>
スクロールが必要な場合は、その周りに ScrollViewer を配置してください。
ページ分割された複数列ビューアーが必要な場合は、完全な FlowDocument を使用する必要がありますが、ハイパーリンク付きのテキストだけが必要な場合は、TextBlock + Hyperlink で十分です。
フロー ドキュメントを手動で設定し、フロー ドキュメント内にハイパーリンクを作成してみてください。
次のリンクから抜粋したテキストを次に示します 。
" やあ、
可能です。これは、段落/セクション/表へのハイパーリンクを作成する小さな例です。
Web サイトに移動するために、ナビゲーション用のフレーム コントロールを作成できます。この例の要素の階層関係は次のようになります。
フレーム --> フロードキュメント --> 表 --> セクション --> 段落 --> ハイパーリンク
コードビハインド:
public Window1()
{
InitializeComponent();
// add a Frame for navigation
Frame frame = new Frame();
this.Content = frame;
//add FlowDocument
FlowDocument doc = new FlowDocument();
frame.Navigate(doc);
//add Table
Table table = new Table();
doc.Blocks.Add(table );
TableRowGroup group = new TableRowGroup();
table.RowGroups.Add(group );
TableColumn col1 = new TableColumn();
TableColumn col2 = new TableColumn();
table.Columns.Add(col1 );
table.Columns.Add(col2);
TableRow row1 = new TableRow();
TableCell cel1 = new TableCell();
row1.Cells.Add(cel1);
group.Rows.Add(row1);
//add Section
Section mySection = new Section();
//add section to the Table cell.
cel1.Blocks.Add(mySection);
Paragraph paraValue = new Paragraph();
Hyperlink hl = new Hyperlink(new Run("Click Here to Google"));
hl.Foreground = Brushes.Red;
paraValue.Inlines.Add(hl);
hl.FontSize = 11;
hl .NavigateUri =new Uri ("Http://www.google.cn");
mySection.Blocks.Add(paraValue);
}
これについてさらに質問がある場合は、お気軽にお問い合わせください。
ありがとう。"