4

私のウィンドウには、いくつかの列を持つ ListView があります。列の一部またはすべては、ユーザーがサイズ変更できないようにする必要があります。列には既に最適な幅があり、偶発的なサイズ変更は悪化させるだけだからです。現在、その質問に対する回答がいくつかありますが、それらはすべてコントロールのスタイルを変更することになります。残念ながら、プラットフォーム/テーマに非常に固有の XAML コードのページが多数あります。Blend でデフォルト スタイルのコピーを作成すると、Win7 Aero でのみ機能する多くのグラデーションなどが得られますが、XP テーマなどでは機能しません。

したがって、コントロールのスタイル全体を置き換えることはできません。(実際にそうであることはめったにありません。)

非表示にする必要がある部分は既に特定しています。「PART_HeaderGripper」という名前です。コード ビハインドで次のコードを使用して、ProgressBar から実行中のグローとその他の部分を削除して、以前にそのようなことを行ったことがあります。

var glow = progressBar.Template.FindName("PART_GlowRect", progressBar) as FrameworkElement;
if (glow != null) glow.Visibility = visibility;

ただし、これは GridViewColumnHeader では機能しません。これは、Template.FindName が何も見つからない (null を返す) ためです。実行時にビジュアルを変更する方法が必要だと確信しています。しかし、私は今それを理解することはできません。何か案が?

4

2 に答える 2

7

テスト済み:

<GridViewColumnHeader Content="Value" IsHitTestVisible="False"/>
于 2012-09-26T20:34:00.943 に答える