2008-11-10 51 views
2

如何在.NET 2.0+ WinForm应用程序中呈现标签云?WinForms .NET 2.0+的标签云控件

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

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

回答

1

好了,你会想用这些主要功能的控制:

  • 可变大小的字符串片断的自动布局
  • 自动鼠标点击测试

这些都是有点来之不易由WF控制。具有ReadOnly = true的RichTextBox为您提供自动布局,但不是命中测试。带有DrawItem的ListBox可以为您提供可变大小的字符串并进行测试,但不是自然布局。

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

2

如何创建一个实现Flow布局控件的用户控件?你可以有一个“Add(string tagName)”的方法,它可以随时创建一个链接标签并将其添加到流程布局控件。 Flow Layout的工作方式与Web相同,因为添加到其中的控件按照创建的顺序进行。

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