我正在尝试使用'OwnerDraw'属性来获取PowerShell来绘制listview对象。
根据我的理解,我应该将句柄放在Listview对象中,我假设我通过使用标题的命令来执行此操作,例如:
$listview_DrawColumnHeader
然后从那里你绘制项目,但是我在互联网上找到的唯一例子是C#,我不知道如何适应powershell!反正我是否可以在powershell中运行C#代码并让C#绘制listview?或者这效率不高?
我这样做的原因是因为我有一个使用类似'Cerulean'的颜色的表单,使用标准的蓝色'突出'颜色时效果不佳。我有很多powershell GUI,我知道可以自定义这个,所以我想学习如何,然后我就可以开始创建看起来更专业的GUI了!
虽然我有使用register-objectevent cmdlet的经验,但我没有很多使用C#的经验并将句柄放在对象中。
任何帮助将不胜感激!
约什
答案 0 :(得分:1)
一旦您创建了WinForms ListView对象,请将OwnerDraw属性设置为$ true并订阅DrawColumnHeader事件,例如:
$listView.OwnerDraw = $true
$listView.add_DrawColumnHeader({
$eventArgs.DrawBackground()
$eventArgs.Graphics.DrawString($eventArgs.SubItem.Text, $listView.Font, ...)
})
有关详细信息,请参阅此MSDN topic。