Is it possible to have a full background image of a window in a burn theme?

When I set Image to fill the window, it seems to display on top of other controls and usually creates a mess of drawing the window. The order in the file does not seem to help, however, if I put it in my own Page section, it will be a little better.

Is there a way to display the image behind everything in the window?

Also, other controls do not seem to display on top of it correctly when they do (text has a white background, buttons have white squares), I assume they need a transparent mode set somewhere?


Edit:

Here is an example of a problem, the button and checkbox became visible from the mouse, and the text:

problem image

+7
source share
3 answers

I was unable to get Image as the background for the job, however I was able to get what I wanted using the background of the window.

Window allows you to use the image specified in Theme/@ImageFile , and then specify the offsets of Window/@SourceX and Window/@SourceY to 0. However, this is not enough because the Window link in the font background will override the window image background . You need to use a font without a specified background.

  <Theme xmlns = "http://wixtoolset.org/schemas/thmutil/2010"
     ImageFile = "background.png">
     <Window Width = "485" Height = "300" HexStyle = "100a0000"
         FontId = "0" SourceX = "0" SourceY = "0"> # (loc.Caption) </Window>
     <Font Id = "0" Height = "- 12" Weight = "500"
         Foreground = "000000" Background = "FFFFFF" > Segoe UI </Font>

There are two more problems that I had to work with:

  • The flags do not obey the background color, but because of the use of common wixstdba controls, you just have to deal with it.
  • The progress text changes, but its color does not redraw, so it is drawn on its own, processed, providing it with a background.

dialog with background image

+8
source

Yes it is possible. If you have a static image that is the same for all pages in the theme, you can place the Image element above all the elements in the page. If you wish, if you need a different background for each page, then first place the image on the page. I organize my topic like this:

 <Theme> <Window /> <Font /> <!-- as many as necessary --> <Image /> <!-- global background image --> <Page> <!-- repeat for each page --> <Image /> <!-- per-page background image --> <other controls /> 

The order of the controls determines the Z-order in reverse order. The first control is at the bottom, and the controls are from top to bottom. This is why Background Image should be the first.

As for transparent text, this is possible with different levels of goodness. First, to get rid of the white background, you need to remove the Background attribute from the Font element used for transparent text. A missing Background attribute means using an empty brush for text that is essentially transparent.

The level of transparency depends on the control. Flags never accept transparent text. In addition, transparent text does not work if it is redrawn. You will see the old text. Thus, transparency only works on Text , which is not updated.

In any case, we hope that you will begin. If you want to contribute to improving transparency or themes, I recommend src\dutil\thmutil.cpp look at the code in src\dutil\thmutil.cpp . Maybe you can figure out how to make it work perfectly.

+4
source

I just recognized the key field when trying a WIX theme.

Visible = Yes

Doesn't mean a visible element. This means that the item is always displayed. On each page.

+3
source

All Articles