Description:
I want to apply DevExpress skins to some 3rd party controls. How can I do this?
Answer:
Since the default painting mechanism can be overridden only in a descendant of a control and we do not know the internal architecture of 3rd party controls, our skins can be applied only to our controls. We cannot affect the painting of 3rd party controls.
The easiest solution to the problem is to replace 3rd party controls with our analogs. If you cannot replace these controls, you can try to skin them manually. To do this, you need to create a descendant of the required control and draw its content as your needs dictate. If you have access to our source code, you can find which painters we use internally and use them in your application. Another solution is to access required images and colors manually as described in the following articles:
How to get skin images at runtime
How to obtain the color of a particular control's element when skins are used
How to get colors that correspond to the currently used skin
How to change one skin element in all available skins
Attached is an example illustrating how to apply skins to the standard Button control.
See also:
DevExpress WinForms Cheat Sheet - Appearances and Skins
I don't see an attached example. Also, I imported Devexpress but I have many standard controls that I would like to apply a skin to. Would I be able to do that and even DevExpress controls I wasn't completely clear how to create a skin.
The example download is to the right.
http://www.devexpress.com/Support/Center/Example/Details/E3015
For our old VB6 components, we used the Codejock skinning framework, which was also able to skin 3rd party controls (even our old cobol dialogs). Why isn't this possible with devexpress?
Our application is be a mix of DevExpress.Net components and old Vb6 and cobol dialogues. It would be great, if they looked alike.
Hello,
To process your recent post more efficiently, I created a separate ticket on your behalf: Implement a capability to skin third-party components. This ticket is currently in our processing queue. Our team will address it as soon as we have any updates.