Powershell Listview OwnerDrawFixed自定义颜色

时间:2013-07-29 14:06:46

标签: powershell

我正在尝试使用'OwnerDraw'属性来获取PowerShell来绘制listview对象。

根据我的理解,我应该将句柄放在Listview对象中,我假设我通过使用标题的命令来执行此操作,例如:

$listview_DrawColumnHeader

然后从那里你绘制项目,但是我在互联网上找到的唯一例子是C#,我不知道如何适应powershell!反正我是否可以在powershell中运行C#代码并让C#绘制listview?或者这效率不高?

我这样做的原因是因为我有一个使用类似'Cerulean'的颜色的表单,使用标准的蓝色'突出'颜色时效果不佳。我有很多powershell GUI,我知道可以自定义这个,所以我想学习如何,然后我就可以开始创建看起来更专业的GUI了!

虽然我有使用register-objectevent cmdlet的经验,但我没有很多使用C#的经验并将句柄放在对象中。

任何帮助将不胜感激!

约什

1 个答案:

答案 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