A: 

why don't you try to listen for SystemColorsChanged event in your form?

    SystemColorsChanged += new EventHandler(Form1_SystemColorsChanged);

    void Form1_SystemColorsChanged(object sender, EventArgs e)
    {
        //try repainting or refreshing your application
    }

I know this is not be the exact solution but you may start working from here.

TheVillageIdiot
I've checked. ActiveCaptionTextColor does not change :(
modosansreves
ActiveCaptionTextColor contains colors from classic theme, not aero.
arbiter
+1  A: 

The system color doesn't actually change. What you're seeing is the application of the Aero theme to the window. There are themeing APIs available to grab the theme specific colors but my experience has been less than stellar using them.

UPDATE FROM COMMENTS: Take a look at the VisualStyleRenderer and the GetColor method.

Paul Alexander
I apply glass effect to all the window.It displays a pie chart and some statistics, glass effect makes the window look cool and beautiful ... until it is maximized.The idea is to bind the foreground color of the text to the current color of the caption, which is kept coherent to glass effect.
modosansreves
The VisualStyleRenderer should help with that.
Paul Alexander
Please help me find which one exactly. Either I miss the obvious, or look in a wrong place, or ...
modosansreves
+1  A: 
Ian Boyd
A: 

Regarding the VisualStyleRenderer based suggestions it might be worth noting, that apparently maximized window captions are handled specially by the Vista DWM (Desktop Window Manager) for performance reasons, see Raymond Chen's explanation for (some) details.

Now, I haven't peeked into the Aero theme itself but it might actually define the same TextColor for both the normal and the maximized caption, the latter just not being used by the DWM.

That said I would have guessed that the captions text color in Vista is indeed determined by VisualStyleElement.Window.Caption.Active for themed normal windows but the former SystemColors.ActiveCaptionTextColor for maximized windows only; unfortunately you figured out already that this is not the case either.

So maybe the DWM just applies an internal default while rendering maximized window captions? If this would be the case you couldn't detect the caption text color change 'by design', rather would need to resort on observing the maximized window state as such and apply the DWM default locally.

Steffen Opel