Background, Working, and Notification Views

Written By launchbox

Last updated About 1 month ago

Not every LaunchBox themed view is a main layout surface. Some views support the overall experience by drawing background artwork, progress overlays, and notifications.

The main supporting views are ContentBackgroundView.xaml, WorkingView.xaml, NotificationView.xaml, and NotificationListView.xaml. These files are smaller than the main content views, but they still have important bindings that should be preserved.


ContentBackgroundView

ContentBackgroundView.xaml displays the current background image behind the rest of the LaunchBox interface. It is hosted from MainView.xaml through the ContentBackgroundViewModel transition presenter.

<transitions:TransitionPresenter x:Name="ContentBackgroundViewModel"                                     Content="{Binding ContentBackgroundView}" />

The default view contains an Image named Image. LaunchBox finds this image by name and assigns the loaded background source directly when the view attaches.

<Image Name="Image"           HorizontalAlignment="{Binding HorizontalAlignment}"           VerticalAlignment="{Binding VerticalAlignment}"           Stretch="{Binding Stretch}" />

If you customize this view, keep an image named Image unless you are intentionally replacing the background behavior. LaunchBox also supports an optional image named ClearLogoImage for layouts that use clear logo artwork with the background.


Background Bindings

ContentBackgroundViewModel exposes these layout bindings:

BindingPurpose

ImagePath

The path for the selected background image.

Stretch

How the background image should stretch.

HorizontalAlignment

The horizontal alignment for the image.

VerticalAlignment

The vertical alignment for the image.

The default view hides the placeholder background image path so the built-in fallback does not show as a real themed background.


WorkingView

WorkingView.xaml displays LaunchBox's progress overlay for long-running tasks. It is hosted by MainView.xaml through a ContentControl named WorkingViewModel.

<ContentControl x:Name="WorkingViewModel"                    Visibility="{Binding WorkingVisibility}" />

This view is behavior-sensitive because users may need to see progress, cancel a task, or open an errors link.


WorkingView Bindings

Important WorkingView.xaml bindings include:

BindingPurpose

Maximum

The maximum progress value.

Value

The current progress value.

Indeterminate

Whether the progress bar should show indeterminate motion.

TopText

The primary progress message.

BottomText

The secondary progress message.

TopTextVisibility

Whether the top text should be visible.

BottomTextVisibility

Whether the bottom text should be visible.

CancelLabel

The localized cancel tooltip text.

CancelEnabled

Whether cancel is currently available.

ErrorLinkVisibility

Whether the errors link should be shown.

ErrorLinkText

The errors link label.

TopOuterPadding

Padding used when the overlay needs to shift under the top bar.

Cursor

The cursor state for the overlay.

The cancel button should remain named Cancel, and the error hyperlink should remain named ErrorLink. LaunchBox uses those elements for built-in cancel and error behavior.


NotificationView

NotificationView.xaml controls the appearance of a single notification. It is used both for tray-style notifications and for notifications inside the notification list.

Important bindings include:

BindingPurpose

DateRaised

When the notification was created.

DateRead

Whether the notification has been read.

IsInTray

Whether the notification is being shown in the notification tray context.

Icon

The notification icon.

Message

The notification message text.

Buttons

Optional action buttons for the notification.

The default view also includes a dismiss button named Dismiss. Keep that action available if you want users to be able to close notifications from the themed notification item.


NotificationListView

NotificationListView.xaml controls the notification panel. It displays the current notifications collection and a clear-all action.

ItemsSource="{Binding Notifications}"    Command="{Binding DismissAllCommand}"

Important bindings include:

BindingPurpose

Notifications

The collection of notification views to display.

DismissAllCommand

Clears all notifications.

ClearAllLabel

The localized clear-all label.

NoNotificationsLabel

The empty-state message.

When rebuilding the list, keep the Notifications items source and the empty-state visibility logic so the panel works correctly when there are no notifications.


What You Can Safely Customize

  • Background image presentation and overlays

  • Progress bar styling and animation

  • Working overlay shape, position, spacing, and colors

  • Notification card backgrounds, borders, spacing, and typography

  • Read/unread visual states

  • Notification tray styling versus list styling

  • Clear-all and dismiss button appearance


What to Be Careful With

  • Keep the background image named Image in ContentBackgroundView.xaml.

  • Keep the optional ClearLogoImage name if you use clear logo background behavior.

  • Preserve Maximum, Value, and Indeterminate in WorkingView.xaml.

  • Keep the Cancel button available if users should be able to cancel tasks.

  • Keep the ErrorLink hyperlink if you show task errors.

  • Preserve notification Message, Icon, Buttons, and dismiss behavior.

  • Keep Notifications bound in NotificationListView.xaml.



In Short

The supporting LaunchBox theme views handle background artwork, progress overlays, and notifications. They are good places for visual polish, but several named controls and bindings are used directly by LaunchBox. Preserve those pieces so background loading, progress reporting, cancellation, errors, and notification actions continue to work.