2017-01-16 3 views
2

は、次のコードを検討アンダー削除:フォーマット・テーブルの使用

$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 

を、列ヘッダ上のアンダースコアが保持されます。

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

ただし、Out-Gridviewを使用すると、アンダースコアは自動的に削除されますか?

Underscores removed

誰もがこの問題を回避する方法を知っていますか?

答えて

1

これはWPFで、テキストの最初のアンダースコアがコントロールのアクセラレータ文字の前に付いていることに関連しているようです。

詳細については、このblog postを参照してください。

WPFは、(リサイズと同様)アンパサンド文字 の代わりにアンダースコア文字を使用してその要素のテキスト内のアクセス(別名加速器や ニーモニック)キーを接頭辞にラベルとボタンのようなものです。

2つのアンダースコアを使用してアンダースコアをエスケープできます。

ので、このコードは、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

上の任意のレポートを見つけることができませんでした