none
Vista でもXP でも共通のカラー RRS feed

  • 質問

  • Windows Form で表示される色が、OSによって異なる色に見えてしまいます。
    以下の通りです。

    GroupBoxのBackClolor をVistaでGradientActiveCaptionに設定しました。
    このWindows アプリをXP で見ると、暗い青になってしまい、印象や見え方がずいぶんと変わってしまいます。
    こんなことにならないための方法を教えてください。

    自分自身のColor についての基礎が不足しているせいだと思うのですが、こうした現象を避けるためにも、少しColor について勉強したいのですが、どうしたらよいのでしょうか?また、Windows Forms に限らず、こうしたColor の知識を深めたいのですが、関連する情報サイトを教えていただけないでしょうか?
    これを機会にWindows のほかApple OSやWebなどでの色の印象についても知りたいと思っています。
    その他、関連する情報についても情報を得たいと思います。

    どうぞよろしくお願いします。
    2010年2月2日 13:35

回答

  • カスタムタブか、Web タブから選択とのことですが、カスタムタブや、Web タブから選択すると妙にきつい色になってしまいますが、色の選び方が悪いのでしょうか。自分で設定すると、色がキツ過ぎてどうもなじめない色になってしまいます。

    OS や テーマ に左右されないためには、自分で明示的に色を設定する必要がありますので、システムタブの色を使う選択肢はありません。

    カスタムタブの色の部分で右クリックすると、R,G,B をいじれたと思います。
    もしくは、BackColor の入力欄に「255, 255, 0」みたいな形で入力すると、RGB 指定ができます。

    RGB 自体は自分で調整するか、デスクトップのウィンドウから RGB を取得するようなソフトを使ってください。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク yasheeki 2010年2月3日 14:57
    2010年2月3日 13:51
    モデレータ

すべての返信

  • BackColor プロパティで表示される一覧で、「システム」というタブの所は OS のテーマなどの設定によって変化します。
    どうしても、特定の色で設定したいのであれば、カスタムタブか、Web タブから選択してください。

    なお、コントロールによっては独自の色を設定しても無視されることがあるかもしれません。
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年2月2日 14:26
    モデレータ
  • Windows Form で表示される色が、OSによって異なる色に見えてしまいます。
    以下の通りです。

    GroupBoxのBackClolor をVistaでGradientActiveCaptionに設定しました。
    このWindows アプリをXP で見ると、暗い青になってしまい、印象や見え方がずいぶんと変わってしまいます。
    こんなことにならないための方法を教えてください。

    自分自身のColor についての基礎が不足しているせいだと思うのですが、こうした現象を避けるためにも、少しColor について勉強したいのですが、どうしたらよいのでしょうか?

    SystemColors クラスが提供する色はシステムの設定に依存しますから、OS やスタイルによって違うのは止むを得ないと思います。色を固定するには System.Drawing.Color 構造体 を使います。

    Windowsの表示要素の色を使う(SystemColorsクラス)


    ちなみにいまの現場のシステムでは、

    ・Windows XP スタイル
    ・XP クラシックスタイル
    ・Vista
    ・Windows 7

    で同じ色にする必要があったため、背景色 SystemColors.GradientInactiveCaption を

    lblName.BackColor = System.Drawing.Color.FromArgb(157, 185, 235)

    みたいな感じで変更しました。RGB 値はフォトショップで検出してます。
    ちなみにプロパティウィンドウでは BackColor に 157, 185, 235 で設定できます。
    現状、これでどの環境でも同じ色で動いてます。

    #もちろんモニタやグラフィックドライバの設定による微妙な差異はありますが・・・

    また Azulean さんが仰るとおり、一部のコントロール・・・
    例えば DataGridView の列ヘッダのように、OS の設定が優先されるコントロールもあります。

    その場合、EnableHeadersVisualStyles プロパティのように
    Visual スタイルを使うか否か設定できるプロパティがあるので、False を設定すれば、任意の背景色に設定できます。

    • 編集済み ひらぽんModerator 2010年2月3日 11:31 後から見直したら言葉が足りなかったので修正
    2010年2月2日 16:22
    モデレータ
  • ご回答ありがとうございます。

    カスタムタブか、Web タブから選択とのことですが、カスタムタブや、Web タブから選択すると妙にきつい色になってしまいますが、色の選び方が悪いのでしょうか。自分で設定すると、色がキツ過ぎてどうもなじめない色になってしまいます。

    この辺りはいかがでしょうか?
    よろしくお願いします。
    2010年2月3日 12:32
  • カスタムタブか、Web タブから選択とのことですが、カスタムタブや、Web タブから選択すると妙にきつい色になってしまいますが、色の選び方が悪いのでしょうか。自分で設定すると、色がキツ過ぎてどうもなじめない色になってしまいます。

    OS や テーマ に左右されないためには、自分で明示的に色を設定する必要がありますので、システムタブの色を使う選択肢はありません。

    カスタムタブの色の部分で右クリックすると、R,G,B をいじれたと思います。
    もしくは、BackColor の入力欄に「255, 255, 0」みたいな形で入力すると、RGB 指定ができます。

    RGB 自体は自分で調整するか、デスクトップのウィンドウから RGB を取得するようなソフトを使ってください。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク yasheeki 2010年2月3日 14:57
    2010年2月3日 13:51
    モデレータ
  • 有難うございます。

    微妙な配色にしたいと思っていましたので、Photoshop を使ってやってみたいと思います。
    2010年2月3日 14:59