Windows Forms Skinning
I've been looking everywhere for a while and haven't found a good solution yet. The closest I've come was an inherited Form class with the non-client area painted to resemble the early look of Windows Vista. There were some glitches, like the minimize, maximize, and close buttons activating on mouse down instead of on mouse click. I'll try to find it again (which I doubt since Google's results are full of irrelevant results for my search query). Until then, if anyone would like to write an article on the basic implementation of skinning all the elements of a window, that would help us all! :D
Please, no glitched implementations though. We all have tried the hide-titlebar-and-make-fake-close-and-minimize-buttons workaround, but those don't come close to the real thing, and there is no facility for maximizing.
# 1 Re: Windows Forms Skinning
actually i am not sure in what you are asking,
1 . do you need an article on how to skin the windows ( for custom look )
2 . change the buttons, icons etc.
if you can get me more info, i can help u in finding you relavant results from google.
eguru at 2007-11-10 3:38:49 >

# 2 Re: Windows Forms Skinning
if you can get me more info, i can help u in finding you relavant results from google.
It would be even better if someone submitted an article to post on the main dev-archive site ;)
Brad!
# 3 Re: Windows Forms Skinning
hehe... sorry for not replying for so long. i just dug up all the threads i posted in.
Here is a current implementation in C#:
http://www.geekswithblogs.net/kobush/articles/CustomBorderForms.aspx
The implementation does NOT hide the non-client area (unlike all the other cheap "skinning" codes). It actually draws the non-client area: titlebar, borders, icon, text, and buttons. It's not complete though.
It's pretty glitchy, and the titlebar buttons behavior isn't what you'd expect, and transparency is not working. However, it's probably the only open source implementation here and the fact that the coder got this far is a great feat, since nobody else has done it before.
The heavy use of native code makes C++/CLI very suited for the job, and if it every gets finished, I think I'll attempt to port it.