Export (0) Print
Expand All
Expand Minimize

ViewTechnology Enumeration

Defines identifiers for a set of technologies that designer hosts support.

Namespace:  System.ComponentModel.Design
Assembly:  System (in System.dll)

'Declaration
<ComVisibleAttribute(True)> _
Public Enumeration ViewTechnology

Member nameDescription
DefaultSpecifies the default view technology support.

The root designer may return any type of object, but the object must be compatible with an adapter for the technology of the host. Hosting environments such as Visual Studio provide a way to plug in new view technology adapters. The default view object for the Windows Forms designer is a System.Windows.Forms.Control instance.

Passthrough Obsolete. Represents a mode in which the view object is passed directly to the development environment.

The view object must implement any interfaces the development environment requires. The Visual Studio development environment supports view objects that are either an ActiveX control, active document, or an object that implements the IVsWindowPane interface that is available through Visual Studio VSI (Visual Studio Integration) program. The Visual Studio development environment provides support for this view technology. Support for this view technology is not necessarily available in all development environments.

WindowsForms Obsolete. Represents a mode in which a Windows Forms control object provides the display for the root designer.

The designer host fills the development environment document window with the Windows Forms control.

The view adapter model replaces and adds functionality to the ViewTechnology feature; however, the ViewTechnology feature is retained for both backward compatibility and future use, if you choose. For more information, see ".NET Shape Library: A Sample Designer" in the Windows Forms Knowledge Base at http://windowsforms.net/articles/shapedesigner.aspx.

ViewTechnology defines identifiers that can indicate the mode to use for controlling the display of a designer-hosted document.

You should only use the Default value in your designer hosting environment. In previous versions of the .NET Framework, the ViewTechnology enumeration specified the type of UI model supported by a root designer. Because this model is not extensible, you should instead use a view adapter model. A view adapter is a type that adapts an object of one type to another.

For example, an HTML designer might return a DemoDOM tree as its view. The HTML designer returns a view technology of Default. A Windows Forms hosting environment would have one or more view adapter classes available. If one such class could convert the DemoDOM into a Windows Forms control, the hosting application can support this type of designer. If no adapter can handle the data type returned from the designer’s GetView method, the load of the designer will fail, and the user will be presented with an error.

Visual Studio has an extensible scheme for providing view adapters, so it can adapt to any UI technology. Third-party technology providers can also offer an appropriate view adapter, and their object models are immediately consumable.

For an example that uses view adapters, see ".NET Shape Library: A Sample Designer" in the Windows Forms Knowledge Base at http://windowsforms.net/articles/shapedesigner.aspx.

The following code example demonstrates how to use the ViewTechnology class in a designer. This code example is part of a larger example provided for the IRootDesigner interface.

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Diagnostics
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.Design

Namespace SampleRootDesigner

    ' This sample demonstrates how to provide the root designer view, or 
    ' design mode background view, by overriding IRootDesigner.GetView(). 

    ' This sample component inherits from RootDesignedComponent which  
    ' uses the SampleRootDesigner. 
    Public Class RootViewSampleComponent
        Inherits RootDesignedComponent

        Public Sub New()
        End Sub 

    End Class 

    ' The following attribute associates the SampleRootDesigner designer  
    ' with the SampleComponent component.
    <Designer(GetType(SampleRootDesigner), GetType(IRootDesigner))> _
    Public Class RootDesignedComponent
        Inherits Component

        Public Sub New()
        End Sub  

    End Class  

    Public Class SampleRootDesigner
        Inherits ComponentDesigner
        Implements IRootDesigner

        ' Member field of custom type RootDesignerView, a control that  
        ' will be shown in the Forms designer view. This member is  
        ' cached to reduce processing needed to recreate the  
        ' view control on each call to GetView(). 
        Private m_view As RootDesignerView

        ' This method returns an instance of the view for this root 
        ' designer. The "view" is the user interface that is presented 
        ' in a document window for the user to manipulate.  
        Function GetView(ByVal technology As ViewTechnology) As Object Implements IRootDesigner.GetView
            If Not technology = ViewTechnology.Default Then 
                Throw New ArgumentException("Not a supported view technology", "technology")
            End If 
            If m_view Is Nothing Then 
                ' Some type of displayable Form or control is required for a root designer that overrides  
                ' GetView(). In this example, a Control of type RootDesignerView is used. 
                ' Any class that inherits from Control will work. 
                m_view = New RootDesignerView(Me)
            End If 
            Return m_view
        End Function  

        ' IRootDesigner.SupportedTechnologies is a required override for an  
        ' IRootDesigner. Default is the view technology used by this designer. 
        ReadOnly Property SupportedTechnologies() As ViewTechnology() Implements IRootDesigner.SupportedTechnologies
            Get 
                Return New ViewTechnology() {ViewTechnology.Default}
            End Get 
        End Property 

        ' RootDesignerView is a simple control that will be displayed  
        ' in the designer window. 
        Private Class RootDesignerView
            Inherits Control
            Private m_designer As SampleRootDesigner

            Public Sub New(ByVal designer As SampleRootDesigner)
                m_designer = designer
                BackColor = Color.Blue
                Font = New Font(Font.FontFamily.Name, 24.0F)
            End Sub  

            Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
                MyBase.OnPaint(pe)
                ' Draws the name of the component in large letters. 
                Dim rf As New RectangleF(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, ClientRectangle.Height)
                pe.Graphics.DrawString(m_designer.Component.Site.Name, Font, Brushes.Yellow, rf)
            End Sub  

        End Class 
    End Class 

End Namespace

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft