I’m a lazy man, and I prefer to do complex program instead of few mouse click, so basically, ones I draw jackal (halo 5) with my graphic table, I noticed that it’s not so easy to switch between the painting program and my reference, it’s distracting, and not easy if you want to be super accurate.

so I decided to make the simplest program, WPF with one simple image. than I check in google how to do it (it’s was ‘topmost’), then added button to load the image (duh), I remove the border of the window and than button to close the program, one to return the border (how should I move the program to different location on the screen?).

next time I use the program, I feel the need to load image directly from the internet with the URL, which added the need to hide all the buttons (and textboxs) when not active (which mean: I painting). later, the ability to drag image and drop it directly into the window has been added. (I’m that lazy)

than, one day, when I use the program ones more, I loaded image with transparent background, which lead directly to the button (and textbox) that allow you to change the color of the background.

while I work with all that, I also saw that I need way to zoom-in and ‘pan’ around, that day I was tired, so I complete copy-past the code from stack overflow, which cause problems later, because I didn’t know what do what until I learn it deeper.

I used the program ones more, and that time I use image that I have lot from this type (destiny grimoire), so I added ability to save the position, width+height of the window, and the zoom+pan and the background color to file and load them later.

after more time, when I use the program ones more, I open 4 instance of the program, drag images to each of them, organize them on the screen, and was ready to start (finally!). the problem was that I decided to stop painting, and make manager window, to control all of the window at the same time. so I make manager window, add few buttons add ability to save all of the windows state (position, size, image link, background color, zoom+pan) in one file, .zrf (ZoomableReferenceFile), which is just json of states.

last time I use the program, I decided I need to find solution if I want to use layout, or put the image on-top of the program. so, new window has been created this week, was need to find out how to do what, added opacity slider, and when you hold leftCtrl you can drag the image from anywhere to anywhere on the screen. working now on the manager window, to work with the new window.

basically, if you have 2 screens, or tablet (or smartphone) you can load the image there and the program is not so useful for you.