Out-Gridview删除下划线

时间:2017-01-16 13:52:39

标签: powershell out-gridview

请考虑以下代码:

$a = @()

$b = "" |select ho_ho,ha_ha
$b.ho_ho = "1"
$b.ha_ha = "2"
$a+=$b

$b = "" |select ho_ho,ha_ha
$b.ho_ho = "3"
$b.ha_ha = "4"
$a+=$b

$a | Format-Table -AutoSize
$a | Out-GridView

使用Format-Table,保留列标题上的下划线。

ho_ho ha_ha
----- -----
1     2
3     4

但是,使用Out-Gridview时,会自动删除下划线?

Underscores removed

有谁知道如何避免这种情况?

1 个答案:

答案 0 :(得分:2)

这似乎与WPF中的事实有关,即文本中的第一个下划线为控件的加速器字符添加前缀。

有关详细信息,请参阅此blog post

  

WPF使用下划线字符而不是&符号   (与WinForms一样)为访问前缀(a.k.a。加速器或   mnemonic)键入其元素的文本,如Label和Button。

     

您可以使用两个下划线来转义下划线。

因此,此代码将在gridview中显示Ok,但不会在Format-Table输出

中显示
$a = @()

$b = "" |select ho__ho,ha__ha
$b.ho__ho = "1"
$b.ha__ha = "2"
$a+=$b

$b = "" |select ho__ho,ha__ha
$b.ho__ho = "3"
$b.ha__ha = "4"
$a+=$b

$a | Format-Table -AutoSize
$a | Out-GridView

请注意,只有字符串中的第一个下划线才需要转义,而不是其他字符串。

我认为这可能被视为一个错误(因为它实际上并没有添加任何关键快捷方式),但我无法在http://connect.microsoft.com

上找到任何报告