ListView を使用して Windows エクスプローラーと同様のスタイルで添付ファイル (ファイル/Web リンク) を表示する winforms アプリケーション (C#、.NET 3.5、最終的には 4.0 に移行) があります。
この機能は、アプリケーション ユーザーから好評を博しています。これを edxpand して、列ヘッダーをクリックして詳細ビューを並べ替えるように要求されました (Windows エクスプローラーと同じ)。
これが私が目指している並べ替えのスタイルです (三角形のグリフを使用して並べ替え方向を示します)
列の ImageKey プロパティを使用することで、これを達成することに近づきました。
if (lvAttachments.ListViewItemSorter != null)
{
lvAttachments.Sort();
if (lvwColumnSorter != null)
{
if (lvwColumnSorter.Order == System.Windows.Forms.SortOrder.Ascending)
lvAttachments.Columns[lvwColumnSorter.SortColumn].ImageKey = "sortAsc";
if (lvwColumnSorter.Order == System.Windows.Forms.SortOrder.Descending)
lvAttachments.Columns[lvwColumnSorter.SortColumn].ImageKey = "sortDesc";
}
}
残念ながら、画像はテキストの右側ではなく左側に表示されます。
ColumnHeader TextAlign プロパティが Left に設定されています。デザイナーで使用できる他のプロパティはほとんどなく、どれも役に立たないようです。
左揃えで画像をテキストの右側に表示することが可能かどうか、または使用する必要がある別のアプローチがあるかどうかを誰かが知っていますか?
私が見つけたオプションの 1 つは、ヘッダー テキストで Unicode グリフを使用することです。ただし、Unicode グリフはあまり良くないので、可能であればこれは避けたいと思います。