Out-Gridview 命令去除下划线

3
考虑以下代码:
$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个回答

2
这似乎与WPF中文本的第一个下划线前缀加速键有关。

详情请参见博客帖子

WPF使用下划线字符而不是与WinForms一样的&字符,在其元素(如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上找不到任何报告。

优秀的发现(好 feature-bug :) )。如果您在第一个“_”之后使用不同的字母,则会添加关键快捷方式。例如:(1,'c'),(2,'b'),(3,'a') | Select-Object -Property @{Name='ab_cd'; Expression={$_[0]}}, @{Name='ef_gh_ij'; Expression={$_[1]}} | Out-GridView。按下 Alt 键,“c”和“g”将变为突出显示。按下 Alt+C 或 Alt+G 将按该列排序(在升序和降序之间交替)。 - Petru Zaharia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接