Photo Utilities Explained Through Tim Corey’s Full-Screen Image Viewer
Small utility applications often solve very specific problems, but those solutions can save a tremendous amount of time. In his video, Tim Corey walks through building a full-screen, borderless photo utility app in .NET 10 using WPF. Rather than creating a generic image viewer for everyone, Tim focuses on building a tool that works perfectly for his own workflow.
In this article, we take a detailed walkthrough of Tim Corey’s video, following his explanations step by step and examining how the photo utility is designed, built, and refined. By going through the entire video, Tim shows not just what to build, but why each decision is made, helping viewers better understand practical desktop utility development.
Why Build Small Photo Utilities?
Tim begins by explaining that small utilities can dramatically improve productivity. He shares that he has been building custom tools for years to streamline repetitive tasks and improve his daily workflow. These utilities are not necessarily meant for mass distribution, but rather for solving personal pain points efficiently.
At the start of the video, Tim demonstrates the working version of the tool—a full-screen, borderless image viewer that supports keyboard shortcuts, right-click menus, and seamless navigation between images. This is the same utility he uses regularly, and the goal of the video is to rebuild it from scratch while explaining every step along the way.
The Problem with Traditional Photo Viewing Experiences
Tim explains that most built-in photo viewers or photos apps are designed to handle many media types, including photos, videos, and sometimes even illustrations or documents. While this is powerful, it also introduces friction. When opening an image, users are often presented with menus, borders, navigation bars, and other UI elements that get in the way.
Tim demonstrates how even when an image is opened full screen, there are still controls, options, and behaviors that interrupt the experience. Navigating away from the image requires multiple actions, such as clicking buttons or pressing keys in a specific order. For his workflow, especially when recording videos, this makes the experience harder than it needs to be.
This is where Tim identifies a missing piece: a lightweight photo utility that simply opens an image, shows it clearly, and gets out of the way when it is no longer needed.
What the Simple Image Viewer Does Differently
Tim introduces the utility he has been using for years. It opens images without borders, fills the entire screen, and allows the user to scroll through images using the keyboard. The app supports right-click options, keyboard navigation, and simple window controls without overwhelming the user.
He shows how the utility can be launched directly from a folder using a right-click option. When the app opens, it immediately displays the image and allows the user to move forward or backward through the image collection. There is no need to search, browse, or manage albums. The focus is purely on viewing content.
If no images are found, the app still opens and allows the user to select a directory manually. Tim highlights that this behavior avoids errors and keeps the experience smooth, even when something is missing.
Choosing WPF and .NET 10 for Graphics and Images
Tim explains why he chooses WPF for this project. Because the app focuses on graphics and image rendering, WPF is a better fit than older UI frameworks. It handles scaling, resizing, and image rendering more smoothly, which is important when displaying photos full screen.
He creates a new WPF application targeting .NET 10, noting that even though earlier versions worked fine, upgrading ensures long-term support and modern features. Tim points out that performance is not an issue, even when working with high-resolution images.
This choice reinforces one of Tim’s key lessons: select tools that fit the problem rather than defaulting to overly complex solutions.
Designing a Minimal Interface for Viewing Images
Tim designs the UI with a single Image control. There are no buttons, toolbars, or panels. Everything the user sees is the image itself. This minimalist approach mirrors the philosophy behind the utility: remove everything that does not directly contribute to viewing the photo.
He explains that additional functionality, such as right-click menus and keyboard handling, will be added later, but visually the app remains simple. This design ensures that images, whether photos, screenshots, or other visual content, are always the primary focus.
Loading Images from a Directory
Tim walks through the logic for loading images from a folder. He filters files by extension to ensure only valid image formats are included. This prevents unrelated files from appearing in the viewer and keeps the experience consistent.
He explains how the full file paths are stored so the app can easily open and display each image. By loading from a directory instead of managing a database or library, the app avoids unnecessary complexity. There is no account system, no syncing, and no background indexing—just direct access to image files.
Navigating Images Like a Continuous Collection
The utility allows the user to move forward and backward through images using arrow keys. Tim explains how the app wraps around when it reaches the end of the list, creating a smooth viewing experience.
Instead of stopping or throwing errors, the app always has a next image to show. This makes browsing a folder of photos feel effortless and predictable. Tim highlights that small logic decisions like this can significantly improve usability.
Opening Images Automatically from the Start
Tim explains how the app can open images immediately when launched with command-line arguments. This is how the right-click integration works. When the user selects the utility from a folder, the directory path is passed in, and the images are loaded automatically.
This approach removes the need for manual browsing every time the app opens. The image appears instantly, which is exactly what Tim wanted for his workflow.
Adding Right-Click Options for Utilities
The app includes a simple right-click context menu with options to load a directory or exit the application. Tim explains that utilities should provide just enough options to be useful without overwhelming the user.
By keeping these features hidden behind a right-click, the app remains clean while still offering flexibility when needed.
Selecting Image Folders Through a File Dialog
When loading images manually, Tim uses a file picker instead of a folder picker. He explains that selecting a single image and extracting its folder is more reliable.
This method ensures that the app always works as expected, even if the folder structure changes or contains mixed content.
Keyboard and Mouse Controls for Fast Access
Tim adds keyboard shortcuts to make the app easier to use. Arrow keys move between images, and the Escape key allows the user to exit quickly. He explains how Escape behaves differently depending on whether the app is full screen or windowed.
Mouse interactions are also added. The user can drag the window by clicking anywhere on the image, and double-clicking toggles full-screen mode. These interactions make the app feel natural and responsive.
Final Thoughts: Why Photo Utilities Matter
Tim concludes his video by explaining how much time this small utility has saved him over the years. By removing unnecessary steps, the app makes recording videos easier and reduces post-production work.
He encourages developers to build utilities that solve their own problems. Even if the tool is never shared publicly, it demonstrates the ability to identify inefficiencies, create solutions, and improve productivity. These kinds of photo utilities, Tim explains, are valuable both personally and professionally.
The full-screen image viewer shows how a focused app, built with care, can outperform more complex solutions when the goal is clarity, speed, and ease of use.

