I am working on a program that does not have many visual elements on the GUI, also, unlike what has been suggested previously, there are no multiple levels of detail or possible elements to add and stay relevant (flashing pictures of cats make everything better, right?). What is a graceful way to constrain the window to a fixed size and a larger scaled view (for HDPI) and switch between them without the user feeling limited?

Some options I have thought of:

  1. Constrain the window size, not allowing the user to manually adjust it at all. Display toggle to change between 2 predetermined sizes.
  2. Scale the content as large as the user makes the window, even if it becomes huge.
  3. Allow the user to adjust the window, but keep the content the same size centered in the window. Once the window becomes large enough to fit the larger scaled view it would be changed. (much like a webbrowser/webpage relationship).
  • Users will feel limited if the UI requires more real estate than you've given it, i.e it's uncomfortable for them to work in the allocated space. Otherwise there's no reason for them to feel limited. – Vitaly Mijiritsky Jan 10 '14 at 7:38

Since you are creating a desktop application, then constrain the window size (use a Dialog border, not a resizable window) but leave significant internal whitespace. On Windows, you should test the application with font scaling up to 200% to ensure it remains legible. This improves accessibility. I am unfamiliar with the UI scaling methods for Linux or Mac.

Some games use fixed UI scaling steps (notable example: Minecraft). I do not think this is ideal usually, but it may be relevant to your presentation. When using this method, you scale to the next size increment when the re-sizable border reaches set scaling targets. This is more appropriate for a game than an application; text can get very large, so that an application feels out of place within the ecosystem of other apps on the computer.

The important thing to remember for a desktop application is that (unlike games), you are rarely using a single program in isolation. Your application should fit within the visual themes and styles of the OS and other applications. Thus auto-scaling the UI to fit the available room is unlikely to be appropriate.

  • Thank you for your thoughts! This is for desktop (Windows and MacOS) coming from SE I placed the platform in the tags, should I move it to the title and description? – block14 Dec 11 '13 at 2:32
  • No, I'm just blind. I will rewrite it to pertain directly to your situation. – Myrddin Emrys Dec 11 '13 at 2:35
  • Can you please elaborate on the differences between a dialog and resizable window border? Edit: I just realized that you might be referring to the function of them, not the visuals. – block14 Dec 11 '13 at 2:54
  • "dialogs" are basically "modal window" conventionally which are not resizeable. – Aftab Dec 11 '13 at 5:27
  • @block14: I'm pretty sure Myrddin is referring to Microsoft's Form.FormBorderStyle property, which affects both the visual style and automatic resizing behaviour of your window. – Kit Grose Dec 11 '13 at 5:57

Your Answer

