# HOOPS Envision for Desktop with WPF

HOOPS Envision for Desktop has (on Windows) a built-in support for Win32 apps. This is implemented by the `Win Component`. The same component is used for Win32, MFC, Windows Forms and WPF.

See the topic C# Users: Features and Differences for tips on how to use HOOPS Envision for Desktop and this documentation with C#/.NET

## Creating a Viewer

All HOOPS Envision apps needs a viewer in order to visualize the 3D data. WPF uses the `ViewerWin32` found in the `Win Component`.

For integration towards WPF, you create your own Windows Forms UserControl and implement paint, mouse and other event handling towards HOOPS Envision for Desktop. The UserControl is inserted into your WPF page using the WindowsFormsHost class. A functional viewer with full code is provided in the WpfWindowsFormsHostMinimal example.

Due to limitations in WPF (airspace), you cannot draw other controls on top of the OpenGL rendering done in the HOOPS Envision for Desktop View class. If you need to have other controls on top of the rendering, you can use a WPF UserControl with offscreen rendering and work around this limitation. See the WpfMinimal example for how to do this. This approach will have a slight performance penalty.

## Example Programs

All .NET examples are provided with a .cproj for use in Visual Studio.

WPF Minimal

| Location: Examples/WinForms/WpfMinimal A very small example showing the basic requirements for a WPF application. This uses offscreen rendering which is then copied to an Image in the WPF UserControl.

Note

We recommend to use WindowsFormsHost instead of a WPF UserControl, for performance reasons.

WPF WindowsFormsHost Minimal

| Location: Examples/WinForms/WpfWindowsFormsHostMinimal A very small example showing the basic requirements for a WPF application using WindowsFormsHost.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Envision for Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Envision for Desktop?
What are the latest release notes for HOOPS Envision for Desktop?
How do I start evaluating HOOPS Envision for Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...