我正在尝试使用 Windows 本机(主题感知)标题控件来显示一些列标题。主要目的是避免手动绘制列标题并依赖本机支持的功能。
所以我想到的两个选项是:
使用
HeaderControl
, 并向其添加列(我似乎找不到 WinForms 支持的标题控件)。使用
ListView
控件,并告诉它不显示任何行(或基本上将其高度设置为列标题的高度) - 找不到任何方法来确定我应该为控件分配哪个高度。
任何好的想法都非常感谢!
HeaderControl
到目前为止,.NET 框架中还没有WinForms(ListView
使用ColumnHeader
该类,但这仅对 .NET 有用ListView
)。如果您只针对 Microsoft Windows,您可以考虑包装 Win32 控件以在 .NET 中使用,尽管我预计这将是一项实质性工作。
您的第二个选项是一种有效的可能性,即使它感觉有些笨拙。我可以看到在正确调整列表大小以使标题和只有标题可见时出现的困难。
第三种选择是滚动你自己HeaderButton
的代表一列(如ColumnHeader
)并使用主题绘图调用来绘制它,然后将它们组合在 aFlowLayoutPanel
或TableLayoutPanel
标题栏中。如果要调整大小,可以使该HeaderButton
区域具有一个抓取区域,您可以拾取该区域并更改其宽度。
我认为第三个选项的创建相当简单,即使具有调整大小的能力,所以我建议采用这条路线(我什至可以在今晚回家时自己尝试一下)。