1

WPF の Web ページのように、テキストをクリックできるようにしたいと考えています。コントロールには、機能しないテキスト (表示用) と、完全にクリック可能な部分の両方が必要です。

ウィキペディアのように言います。

ただし、これは独立したスタンドアロンのオフライン アプリです。

いろいろ試しましたが、できませんでした。特に、クリックが Web ページのように機能しません。つまり、1 クリックでツール内の URL が開きます。

4

2 に答える 2

1

本格的な 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 で十分です。

于 2010-11-30T20:28:47.250 に答える
1

フロー ドキュメントを手動で設定し、フロー ドキュメント内にハイパーリンクを作成してみてください。

次のリンクから抜粋したテキストを次に示します

" やあ、

可能です。これは、段落/セクション/表へのハイパーリンクを作成する小さな例です。

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);
        }

これについてさらに質問がある場合は、お気軽にお問い合わせください。

ありがとう。"

于 2010-11-30T00:53:08.830 に答える