none
フォームの外枠(タイトルなどが書いてある場所)の色を変更したい RRS feed

回答

  • Windows Forms でしょうか?WPF でしょうか?

    また、色を変更するとは具体的にどのようにしたいのでしょう? Windows のデザイン変更の範囲で違う設定にしたいのか、完全に独自に描画を行いたいのかで対応方法もかわってきます。

    その他、タイトルバーの大きさやら形状は Windows のバージョンやユーザの選択している画面デザインの設定で大きく違うので、これらにたいしてどう対応したいのか(ユーザの設定を無視したウィンドウを表現したいのか、ユーザの設定にあわせて色合いだけ替えたいのか)も重要な要素です。

    当然ですが、ユーザ毎にデスクトップのデザインが異なることを踏まえて、色を変更したことで境界線が見えなくなったり、タイトルバーの文字色と同じになって文字が読めなくなる・・・といった問題も考慮しないといけないので、OS やユーザの設定を無視して描画するというのは、結構気をつかう必要があります。

    調べても無理でしたというのは、良い情報が発見できなかったのでしょうか? やりかたはわかったけど実現できなかったということでしょうか? Windows でフォームの外側は「非クライアント領域 (NC)」と呼ばれています。ですので、これをキーワードに調べると結構な量の情報が得られると思います。たとえば、Windows メッセージには NC で始まるものが一式あり、この中には非クライアント領域の描画を行う WM_NCPAINT というものがあったりします。良い情報が見つけることができなかったのであれば、このあたりのキーワードで検索しなおしてみてはいかがでしょう。

    たとえば、google で WM_NCPANIT を検索すると、1番最初に C# でフォームの境界線を変更しようとしている人の質問なんかがひっかかりますので、試してみることもできるのではないでしょうか。

    • 編集済み K. Takaoka 2012年9月29日 8:05
    • 回答の候補に設定 佐伯玲 2012年10月5日 7:48
    • 回答としてマーク 佐伯玲 2012年10月10日 5:25
    2012年9月29日 8:03

すべての返信

  • Windows Forms でしょうか?WPF でしょうか?

    また、色を変更するとは具体的にどのようにしたいのでしょう? Windows のデザイン変更の範囲で違う設定にしたいのか、完全に独自に描画を行いたいのかで対応方法もかわってきます。

    その他、タイトルバーの大きさやら形状は Windows のバージョンやユーザの選択している画面デザインの設定で大きく違うので、これらにたいしてどう対応したいのか(ユーザの設定を無視したウィンドウを表現したいのか、ユーザの設定にあわせて色合いだけ替えたいのか)も重要な要素です。

    当然ですが、ユーザ毎にデスクトップのデザインが異なることを踏まえて、色を変更したことで境界線が見えなくなったり、タイトルバーの文字色と同じになって文字が読めなくなる・・・といった問題も考慮しないといけないので、OS やユーザの設定を無視して描画するというのは、結構気をつかう必要があります。

    調べても無理でしたというのは、良い情報が発見できなかったのでしょうか? やりかたはわかったけど実現できなかったということでしょうか? Windows でフォームの外側は「非クライアント領域 (NC)」と呼ばれています。ですので、これをキーワードに調べると結構な量の情報が得られると思います。たとえば、Windows メッセージには NC で始まるものが一式あり、この中には非クライアント領域の描画を行う WM_NCPAINT というものがあったりします。良い情報が見つけることができなかったのであれば、このあたりのキーワードで検索しなおしてみてはいかがでしょう。

    たとえば、google で WM_NCPANIT を検索すると、1番最初に C# でフォームの境界線を変更しようとしている人の質問なんかがひっかかりますので、試してみることもできるのではないでしょうか。

    • 編集済み K. Takaoka 2012年9月29日 8:05
    • 回答の候補に設定 佐伯玲 2012年10月5日 7:48
    • 回答としてマーク 佐伯玲 2012年10月10日 5:25
    2012年9月29日 8:03
  • こんにちは、たけのこ2 さん
    フォーラムオペレータの佐伯 玲 です。

    K. Takaoka さんの情報はご確認いただけたでしょうか?
    たけのこ2 さんの質問に対して参考になる情報と思われましたので勝手ながら私のほうで「回答としてマーク」をさせて頂きました。
    もしご確認いただいてわからないことがあったりうまくいかないことがあればこのスレッドにそのままご返信くださいませ。

    宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 佐伯 玲

    2012年10月10日 5:25