Specifically, I want to know how the music player Muziic is skinnable. Is it just image boxes in a panel that change depending on what the XML in the skin says? And how would I do something like this in C# or C++?
The very basic idea is that you would have some sort of user-editable configuration file. This file could dictate things like textures to use for buttons/interfaces, or possibly even control positions.
when your app loads, you read the configuration, and set the properties accordingly.
It sort of depends on what your application needs to do, and what level of skinnability you need to provide
Hello
I've not got the answer but thought i'd let you know about a website that I came across when seaching for the same thing.
Take a look at Componentfactory.com.
You can download a free toolkit of controls that allow you to customise their look and feel. The look and feel can be changed dynamically using something called a palette which specifies how each control is drawn (with a common theme). They have a very helpful forum answering questions on customising the code and the look and feel for your own use.
The source code is also available for a small price and may provide inspriation for your own work.
I have used this toolkit to create several applications and as relative novice in C# with deadlines to meet it has proved very helpful. Eventually I would like to take more control over the design of the controls - however the toolkit is pretty well done and would probably take a lot of time to match.