Recommended user controls

The MIP SDK offers a number of user controls that will speed up development and help provide a smooth and consistent user experience.

User controls in the MIP SDK

The MIP SDK offers both dedicated special-purpose user controls and a comprehensive set of general-purpose user controls:

Special-purpose user controls

The following table provides an overview of the special-purpose user controls. The last column indicates whether the control is useful in both the MIP plug-in environment and the MIP SDK component (standalone) environment, or only in the MIP plug-in environment.

WPF control WinForms control Description Both

AudioPlayer

AudioPlayerControl

Playing live and recorded audio from an XProtect server or from an export in XProtect format.

AudioPlayer isn't actually a UserControl.

X

ImageViewerWpfControl

ImageViewerControl

Displays a video stream. Can be controlled by a PlaybackWpfUserControl/PlaybackUserControl.

X

PlaybackWpfUserControl

PlaybackUserControl

A timeline and controls for playback through an ImageViewerWpfControl/ImageViewerControl.

X

ItemPickerWpfWindow

ItemPickerForm

Window used for navigating and selecting an Item. ItemPickerWpfWindow can select more than one Item.

X

ItemPickerWpfUserControl

ItemPickerUserControl

Used for navigating and selecting an Item. ItemPickerWpfUserControl can select more than one Item.

X

PropertiesWpfUserControl

PropertiesUserControl

Property panel in Smart Client Setup mode.

- displayed in the sidepanel automatically when entering setup mode in the Smart Client

SidePanelWpfUserControl

SidePanelUserControl

Property Side panel in Smart Client.

- displayed in the sidepanel, is present depending on the active Workspace, including Live mode, Playback mode. (controlled by SidePanelPlaceDefinition).

ViewItemWpfUserControl

ViewItemUserControl

UserControl for a ViewItem in Smart Client.

All new development should use the WPF controls. The WinForms controls are still available, but will be deprecated.

Each of the seven WPF controls is a re-implementation of the corresponding WinForms control. If you are familiar with the WinForms controls, you should find the WPF versions to be very similar.

As opposed to the old WinForms versions the WPF do not require using (or even have) Generate methods to be instantiated. They can be used directly in your XAML (or new'ed from code-behind if you prefer) and even added to your Visual Studio designer toolbox for simple drag'n'drop deployment (you need to manually add the VideoOS.Platform.dll to your toolbox, though).

Using WPF controls in Smart Client plug-ins

You use the ViewItemPlugin, SidePanelPlugin, and SettingsPanelPlugin (or OptionsDialogPlugin for WinForms) to define how Smart Client plug-ins integrate into the user interface.

For more information about user control architecture and life cycle, refer to:

User control Definition Description Both

ViewItemWpfUserControl

ViewItemUserControl

ViewItemPlugin

The user controls are provided through methods on the ViewItemManager. Provide the WPF controls by overriding the GeneratePropertiesWpfUserControl() and GenerateViewItemWpfUserControl() methods (or the GeneratePropertiesUserControl() and GenerateViewItemUserControl() methods for WinForms).

X

SidePanelWpfUserControl

SidePanelUserControl

SidePanelPlugin

In the SidePanelPlugin the WPF control is returned by overriding the GenerateWpfUserControl() directly on the plugin class itself.

X

SettingsPanelPlugin

The SettingsPanelPlugin only has WPF functionality (the WinForms equivalent is the OptionsDialogPlugin).

The ViewItemPlugin and SidePanelPlugin have both WPF and WinForms functionality. The Smart Client will first call the WPF versions and only if these aren't implemented (returns null), it will call the WinForms versions instead to ensure backward compatibility.

XProtect Design System user controls

The XProtect Design System

The XProtect Design System (codename Apollo) provides a comprehensive set of UX guidelines, based on industry best practice and user research.

Apollo is a collection of interconnected patterns, visual designs, behaviors and shared practices that should be used in product design and development of XProtect solutions

The XProtect Design System provides you with all the detailed information you'll need to build a product experience that aligns with the modern and native Milestone XProtect experience. The design system addresses usability, accessibility, performance and localisation across XProtect desktop, browser, and mobile applications.

For more information, please refer to The XProtect Design System.

XProtect Design Systems user controls

The XProtect Design Systems user controls consists of a collection of WPF user controls that implements the XProtect Design System.

While you can still design and use your own WPF user controls, the XProtect Design Systems user controls provide a number of benefits:

The XProtect Design Systems user controls are defined in the namespace VideoOS.Platform.UI.Controls.