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 подчеркивания автоматически удаляются?
Кто-нибудь знает, как этого избежать?
1 ответ
Похоже, это связано с тем, что в WPF первое подчеркивание в тексте ставит префикс ускоряющего символа для элемента управления.
Смотрите этот блог для деталей:
WPF использует символ подчеркивания вместо символа амперсанда (как в WinForms) для префикса клавиши доступа (или ускорителя или мнемоники) в тексте его элементов, таких как Label и Button.
Вы можете избежать подчеркивания, используя два подчеркивания.
Таким образом, этот код будет отображаться Ok в gridview, но не в 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/