2

您将如何在 .NET 2.0+ WinForm 应用程序中呈现标签云?

我正在考虑的一种解决方案是使用 WebBrowser 控件并生成一些临时 HTML,但这似乎是一个非常繁重的解决方案。

我错过了更简单的东西吗?

4

2 回答 2

2

如何创建一个实现 Flow 布局控件的用户控件?您可以为“Add(string tagName)”创建一个动态链接标签并将其添加到 Flow Layout 控件的方法。Flow Layout 就像 web 一样工作,添加到它的控件按创建顺序放置。

然后,您只需添加一些逻辑即可根据该标签的命中数调整链接标签的大小。

于 2008-11-17T17:54:00.153 回答
1

那么,您将需要具有以下主要功能的控件:

  • 可变大小字符串片段的自动布局
  • 自动鼠标命中测试

这些在WF控件中有点难以获得。带有 ReadOnly = true 的 RichTextBox 为您提供自动布局,但不提供命中测试。带有 DrawItem 的 ListBox 可以为您提供可变大小的字符串和命中测试,但不是自然布局。

我想我会使用 RTB 并使用 MouseDown 事件和 GetCharIndexFromPosition() 进行命中测试,在点击的位置读回标签。您需要一些逻辑来找到单词周围的开始和结束空白。

于 2008-11-10T17:44:10.387 回答