2

.NET 2.0+ WinForm アプリケーション内でタグ クラウドをどのようにレンダリングしますか?

私が考えている 1 つの解決策は、WebBrowser コントロールを使用してアドホック HTML を生成することですが、それはかなり重い解決策のようです。

もっと単純なものがありませんか?

4

2 に答える 2

2

フロー レイアウト コントロールを実装するユーザー コントロールを作成してみませんか? その場でリンク ラベルを作成し、フロー レイアウト コントロールに追加する "Add(string tagName)" のメソッドを持つことができます。フロー レイアウトは、追加されたコントロールが作成順に配置されるという点で、Web と同じように機能します。

次に、そのタグのヒット数に基づいてリンク ラベルのサイズを変更するロジックを追加するだけです。

于 2008-11-17T17:54:00.153 に答える
1

さて、次の主要な機能を備えたコントロールが必要になります。

  • 可変サイズの文字列スニペットの自動レイアウト
  • 自動マウス ヒット テスト

これらは WF コントロールでは手に入りにくいものです。ReadOnly = true の RichTextBox は自動レイアウトを提供しますが、ヒット テストは提供しません。DrawItem を含む ListBox は、可変サイズの文字列とヒット テストを提供できますが、自然なレイアウトにはなりません。

RTB を使用して、ヒット テストを MouseDown イベントと GetCharIndexFromPosition() で機能させ、クリックされた場所のタグを読み戻そうと思います。単語の先頭と末尾の空白を見つけるには、少しロジックが必要です。

于 2008-11-10T17:44:10.387 に答える