How to Create a Color Theme For Desktop App

Dear Friends, I hope you’re fine and doing great.

I’m new in using Xojo. My experience mostly lies in MS Visual Studio. I’ve been using VB.Net and C# but mostly that’s why I thought Xojo is an alternative framework for making cross platform desktop app.

I need to make at least a simple color theme for my Xojo Desktop App. Xojo Apps are native and they don’t look great on Windows that’s why I need a color theme for the entire app. Anybody who can give me a good start point is highly appreciated.

Thanks in advance.

Can you elaborate a bit (what do you really want to do) ?

Each window have a background color property. You can set that color (the same for all windows) ?
(In that simple case, you can add an entry in your Preferences window)…

Thank you for your quick reply. But does this apply even to other controls like buttons, labels, etc?

I do not believe that: for window background only.

Excepted if you create your own (or use someone else) Controls, no color property for controls is provided.

You can read the documentation ( for example) to be sure.

Christian ?


Edit: added the PS below.

PS: usually, the user interface (Controls, window title/outline rectangle,…) keeps the original colors (Black or Grey outline, black window title area instead of green, red or any other color).

Okay Emile. Thanks for you advice. Let me get my hands dirty with some coding and I will quickly get back here to show the results.

Hi Ngabo,

The Xojo-built applications are still Win32, so you don’t have the ability to theme everything like you can with WinForms and WPF.

It seems you’re true. I’ve been trying to read the online documentation but nothing works out as I had earlier expected. In WinForms I had the ability to write my own themes and the App would look great which is quite hard with Xojo!!! Further still, I could write classes that could make my own customized forms and controls but I haven’t got even a single example of it in Xojo! What would be your advice to me guys?

It is win32. There are not a lot of options. As was suggested, set each window backcolor manually, each control color manually. Some controls can also be set as transparent. Perhaps the CustomUI add-on from jeremie Leroy could allow you to do what you want. You will have to verify for yourself.

The basic control that I need to use do not have that property. This include buttons, checkboxes, radio buttons, tabpanel among other controls. I’ve watched a tutorial about the canvas but I can’t base on it to create controls like a combobox.

Care to explain how ?

To me the posting from Tim Starc appears to be spam.
What has printer offline fix to do with a coloured theme?
Or am I wrong?

Or meant to the IDE itself who is not the op question…

actually you can… it probably isn’t worth the effort, but it can be done

Yeah, According to the short video tutorial I watched, it was short and too basic. I remained wondering because even the button made under that video couldn’t move!!! When I look at Xojo Controls, they have few properties hence limited ways of manipulating them. But if I can get a good start point, I can go on further to develop my own themes. I’m still waiting for help from someone willing to help me.

Not sure exactly what you are waiting for or why you think no one is willing to help you.
For desktop applications, the controls are for the most part native to the specific operating system, and what visual attributes can or cannot be changed are up to that OS. If you want to go beyond that then you create your own controls.

Just because you WANT to do something, doesn’t mean it can be accomplished with a mouseclick, sometime you need to exert some effort.

And yeah, buttons can be moved, very easily…

@Ngabo Adrian People in the Xojo community spend much time helping others here on the forum and that is what makes the community great, but sometimes the help needed can get into more of a one on one training session and that is more in the realm of Hire a Consultant

Hope this helps you

If you want to customise everything, you need to draw everything
Ditch combo boxes… override the painting of a listbox instead.
A button is a canvas where you paint the background, and add text
You need to react to mouse down, mouse up, by adding events to the canvas, which you use as the base for a custom control.

I don’t think you are going to find anyone who will work through all of this with you… it’s complex and time-consuming work.
By all means do something and ask a question when something doesnt do what you expect…

@Ngabo Adrian my humble suggestion is that you don’t waste time trying to customize the interface on your own. it will take you too long to do it. in this case i recommend you to use the controls already created–>

It is possible to change the color of windows bars with declares. However, Microsoft design guidelines recomend letting the user decide of that as part of the system theme.

An easy way to control the color of the bar is to emulate it with a canvas on a plain box window.

Note that the plain box under Windows 10 has a white stripe on top, that you can remove with the declare I posted at <>

Oh, small suggestion : you should post in the Windows channel to make it easier to search later.

I am new to Xojo and I’m trying to learn about customizing themes for a desktop app. If I’m reading this thread right, it seems it’s very difficult to do? That purchasing the Xojo Desktop Controls package may be the only way to do it?

I see that there are css themes but I think those are only usable for web apps, not desktop? Sorry, but I’m really confused about Xojo themes for the desktop apps. Thanks.