色深度が 16 ビットのディスプレイ (16 ビット色に設定されたリモート デスクトップ セッションを含む) では、Windows フォーム アプリケーションは、割り当てられたタイトル バー アイコン ( Form.Icon
) の低色深度バージョンを使用します。ただし、WPF アプリケーションと Windows エクスプローラーは、存在する場合は 24 ビットの色深度を使用します。
これは、現在取り組んでいる Windows フォーム アプリケーションで初めて見ました。私が使用していたアイコンには、4 ビット、24 ビット、および 32 ビットのバリアントが定義されていました。16 ビット ディスプレイでは、Windows フォームは、見栄えの良い 24 ビットまたは 32 ビット バージョンではなく、見苦しい 4 ビット バージョンをタイトル バーに使用していました。
動作をテストして説明するために、サイズと色の形式ごとに明らかに異なるデザインのテスト アイコンを作成しました。4 ビット、8 ビット、24 ビット、および 32 ビットのバリアントを含めました。
以下は、32 ビットと 16 ビットの両方のディスプレイでの結果です。
32 ビット ディスプレイでは、すべて問題ありません。
ウィンドウズ・エクスプローラ:
WPF アプリケーション:
Windows フォーム アプリケーション:
16 ビット ディスプレイでは、Windows フォームは、WPF または Windows エクスプローラーよりも色深度の低いアイコンのバリアントを表示します。
ウィンドウズ・エクスプローラ:
WPF アプリケーション:
Windows フォーム アプリケーション:
16 ビット ディスプレイでは、Windows エクスプローラーと WPF は 24 ビット形式を使用しますが、Windows フォームは使用しません。この場合、8 ビット形式を使用しました。私の実際のアプリケーション アイコンには 8 ビット バリアントがありませんでした (しかし、これから作成します!)。そのため、Windows フォームは 4 ビット バリアントを使用しました。
Windows フォーム アプリケーションで、16 ビット ディスプレイのタイトル バーに 24 ビット バージョンのアイコンを表示するにはどうすればよいですか?