Game Details and Platform Details Views

Written By launchbox

Last updated About 1 month ago

LaunchBox uses two main details views:

GameDetailsView.xaml    PlatformFiltersDetailsView.xaml

GameDetailsView.xaml is used when a game is selected.

PlatformFiltersDetailsView.xaml is used when the current selection represents a platform, playlist, or platform category.

Both are hosted by the GameDetailsView region in MainView.xaml.


GameDetailsView

GameDetailsView.xaml controls the selected game details panel.

It can display:

  • game title and platform

  • clear logo and background artwork

  • screenshots, fanart, and videos

  • notes and description

  • metadata fields

  • play/edit/configure/delete commands

  • star ratings

  • badges

  • achievements

  • high scores

  • documents and links

  • related games, similar games, and possible ports

This view is one of the richest theme surfaces in LaunchBox.


Common Game Bindings

The main object exposed to the view is:

Game

Common game bindings include:

Game.Title    Game.Platform    Game.ReleaseDate    Game.Notes    Game.Developer    Game.Publisher    Game.Rating    Game.Genres    Game.Series    Game.PlayMode    Game.Version    Game.Status    Game.Source    Game.Region    Game.Progress    Game.PlayCount    Game.PlayTime    Game.ApplicationPath    Game.WikipediaUrl    Game.VideoUrl

The default view also exposes formatted or helper properties for many of these fields through the details view model.


Images and Media

Common media bindings include:

GameBackgroundImage    GameClearLogoImage    Preview    PreviewImage    ScreenshotImages    FanartImages    Documents    Links

The default theme also uses LaunchBox media controls such as FlowImage, FlowVideo, MediaList, and badge controls. These are useful because they understand LaunchBox media paths, fallback behavior, caching, and image type lookup.

For example, a theme can show game screenshots, background art, clear logos, or media lists without manually resolving file paths.


Metadata

GameDetailsViewModel builds a metadata collection called:

VisibleMetadata

This is useful when you want to display only the metadata fields the user has enabled in LaunchBox settings.

Each metadata item generally contains:

Header    Value

This lets a theme show metadata generically instead of hard-coding every field.


Game Commands

Common command bindings include:

PlayCommand    ConfigureCommand    EditCommand    DeleteCommand    FavoriteCommand    CompleteCommand    PopOutCommand

There are also visibility and availability bindings that determine whether a command should be shown or enabled.

Examples:

PlayButtonEnabled    PlayAvailabilityChecking    PlayUnavailable    PlayUnavailableToolTip    HasPlayableVersions    HasManageableVersions    EditVisibility

Themes should preserve command bindings when restyling buttons. A button can look completely different, but it should still call the expected command.


Achievements and High Scores

GameDetailsView.xaml can display achievement and high score data from several systems.

Common achievement areas include:

Achievements.Steam    Achievements.Gog    Achievements.RetroAchievements    RetroAchievementsTotalAchievements    RetroAchievementsEarnedAchievements    TimeToBeatVisibility

MAME high score and leaderboard-related visibility bindings are also available, including weekly, monthly, yearly, and overall leaderboard states.

Achievement data can load asynchronously, so theme layouts should handle loading, empty, and unavailable states gracefully.


Related Game Sections

The game details view can also expose related content:

RecommendedGames    SimilarGames    PossiblePorts

Each section has visibility and loading bindings, such as:

RecommendedGamesVisibility    RecommendedGamesLoadingVisibility    SimilarGamesVisibility    SimilarGamesLoadingVisibility    PossiblePortsVisibility    PossiblePortsLoadingVisibility

These sections may be hidden by user settings or unavailable for some games.


PlatformFiltersDetailsView

PlatformFiltersDetailsView.xaml controls the details panel for non-game selections, including:

Platforms    Platform Categories    Playlists

It inherits much of the same base behavior as GameDetailsView.xaml, but its data comes from the current filter instead of a selected game.

Common bindings include:

Platform    PlatformTitle    Platform.ReleaseDate    Platform.Notes    PlatformBackgroundImage    PlatformClearLogoImage    FilterType    FilterValue    FilterPair    VisibleMetadata

Platform and Playlist Stats

PlatformFiltersDetailsViewModel can expose library stats for the selected filter.

Common metadata bindings include:

TotalGames    GamesBeaten    GamesCompleted    GamesMastered    LastPlayedDate    LastPlayedGamePair    MostPlayedGamePair    TotalPlays    TotalPlayTime    Manufacturer    Cpu    Memory    Graphics    Sound    Display    Media    MaxControllers    DefaultEmulator

These fields are controlled by user settings, so themes should expect some fields to be hidden.


Platform Game Shortcuts

The platform details view can expose quick game selections:

LastPlayedGame    MostPlayedGame    RandomGame    LastPlayedPlayableGame    RandomPlayableGame

Useful commands include:

PlayCommand    PlayRandomGameCommand    SelectCommand

These allow a theme to offer actions like playing a random game from the selected platform or jumping to a featured game.


Platform Documents

Platform details can include platform documents:

PlatformDocuments    PlatformDocumentsVisibility

This allows theme layouts to show manuals, reference files, or related documents attached to platforms where available.


Fallback Behavior

If a custom theme does not include:

PlatformFiltersDetailsView.xaml

LaunchBox can fall back to:

GameDetailsView.xaml

That fallback helps older or simpler themes continue working, but a polished LaunchBox Desktop theme should usually provide both files.


What to Customize

Customize GameDetailsView.xaml when you want to change:

  • game details layout

  • game artwork presentation

  • video and screenshot placement

  • play/edit/configure buttons

  • metadata layout

  • notes and description styling

  • achievements and high scores

  • related games sections

  • document and link sections

Customize PlatformFiltersDetailsView.xaml when you want to change:

  • platform/category/playlist details

  • platform artwork

  • platform stats

  • random/last-played/most-played game sections

  • platform document sections

  • filter-specific metadata


What to Be Careful With

Be careful with:

Game    Platform    VisibleMetadata    PlayCommand    EditCommand    ConfigureCommand    PopOutCommand    PlayRandomGameCommand    Documents    Links    PlatformDocuments    Achievement visibility bindings    Related game loading visibility bindings

The details views contain many optional sections. A good theme should handle missing images, missing notes, hidden metadata, unavailable achievements, and empty related-game sections without leaving awkward gaps.



In Short

GameDetailsView.xaml controls the selected game details panel, while PlatformFiltersDetailsView.xaml controls details for platforms, playlists, and platform categories. These views are media-rich and metadata-heavy, so theme developers should preserve the core bindings and commands while designing flexible layouts that handle missing or hidden data cleanly.