ViewTechnology-Enumeration
Definiert Bezeichner für eine Gruppe von Technologien, die von Designerhosts unterstützt werden.
Namespace: System.ComponentModel.Design
Assembly: System (in system.dll)
Syntax
'Declaration
<ComVisibleAttribute(True)> _
Public Enumeration ViewTechnology
'Usage
Dim instance As ViewTechnology
[ComVisibleAttribute(true)]
public enum ViewTechnology
[ComVisibleAttribute(true)]
public enum class ViewTechnology
/** @attribute ComVisibleAttribute(true) */
public enum ViewTechnology
ComVisibleAttribute(true)
public enum ViewTechnology
Member
Membername | Beschreibung | |
---|---|---|
Default | Gibt die Standardunterstützung für die Ansichtstechnologie an.
Der Stammdesigner kann ein Objekt eines beliebigen Typs zurückgeben, das Objekt muss jedoch mit einem Adapter für die Hosttechnologie kompatibel sein. Hostingumgebungen wie Visual Studio erlauben die Integration neuer Ansichtstechnologieadapter. Das Standardansichtsobjekt für den Windows Forms-Designer ist eine System.Windows.Forms.Control-Instanz. |
|
Passthrough | Stellt einen Modus dar, in dem das Ansichtsobjekt direkt an die Entwicklungsumgebung übergeben wird.
Das Ansichtsobjekt muss alle für die Entwicklungsumgebung erforderlichen Schnittstellen implementieren. Die Visual Studio-Entwicklungsumgebung unterstützt Ansichtsobjekte, bei denen es sich um ein ActiveX-Steuerelement, ein aktives Dokument oder ein Objekt handelt, das die IVsWindowPane-Schnittstelle implementiert, die über das VSI-Programm (Visual Studio-Integration) von Visual Studio verfügbar ist. Die Visual Studio-Entwicklungsumgebung unterstützt diese Ansichtstechnologie. Unterstützung für diese Anzeigetechnologie ist nicht notwendigerweise in allen Entwicklungsumgebungen vorhanden. |
|
WindowsForms | Stellt einen Modus dar, in dem ein Windows Forms-Steuerelementobjekt die Anzeige für den Stammdesigner bereitstellt.
Der Designerhost füllt das Dokumentfenster der Entwicklungsumgebung mit dem Windows Forms-Steuerelement. |
Hinweise
Das Ansichtsadaptermodell ersetzt und erweitert die Funktionen des ViewTechnology-Features. Aus Gründen der Abwärtskompatibilität sowie ggf. für die zukünftige Verwendung wird das ViewTechnology-Feature jedoch beibehalten. Weitere Informationen finden Sie unter ".NET Shape Library: A Sample Designer" in der Windows Forms Knowledge Base unter http://windowsforms.net/articles/shapedesigner.aspx (nur auf Englisch verfügbar).
ViewTechnology definiert Bezeichner, die den Modus zur Steuerung der Anzeige eines von einem Designer aufgenommenen Dokuments angeben können.
Sie sollten den Default-Wert nur in der Hostingumgebung des Designers verwenden. In früheren Versionen von .NET Framework wurde der Typ des von einem Stammdesigner unterstützten UI-Modells mit der ViewTechnology-Enumeration angegeben. Da dieses Modell nicht erweiterbar ist, sollten Sie stattdessen ein Ansichtsadapter-Modell verwenden. Ein Ansichtsadapter ist ein Typ, der ein Objekt eines bestimmten Typs an ein anderes anpasst.
Beispielsweise kann ein HTML-Designer eine DemoDOM
-Struktur als Ansicht zurückgeben. Der HTML-Designer gibt die Ansichtstechnologie Default zurück. In einer Windows Forms-Hostingumgebung stehen eine oder mehrere Ansichtsadapterklassen zur Verfügung. Wenn eine dieser Klassen das DemoDOM
in ein Windows Forms-Steuerelement konvertieren kann, ist eine Unterstützung dieses Designertyps in der Hostinganwendung möglich. Wenn kein Adapter den von der GetView-Methode des Designers zurückgegebenen Datentyp behandeln kann, tritt beim Laden des Designers ein Fehler auf, und dem Benutzer wird ein Fehler angezeigt.
Visual Studio verfügt über ein erweiterbares Schema für die Bereitstellung von Ansichtsadaptern, sodass eine Anpassung an eine beliebige UI-Technologie möglich ist. Technologiedrittanbieter, deren Objektmodelle direkt verarbeitet werden können, können außerdem einen geeigneten Ansichtsadapter zur Verfügung stellen.
Ein Beispiel für die Verwendung von Ansichtsadaptern finden Sie unter ".NET Shape Library: A Sample Designer" in der Windows Forms Knowledge Base unter http://windowsforms.net/articles/shapedesigner.aspx (nur auf Englisch verfügbar).
Beispiel
Im folgenden Codebeispiel wird die Verwendung der ViewTechnology-Klasse in einem Designer veranschaulicht. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die IRootDesigner-Schnittstelle.
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
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using 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 : RootDesignedComponent
{
public RootViewSampleComponent()
{
}
}
// The following attribute associates the SampleRootDesigner designer
// with the SampleComponent component.
[Designer(typeof(SampleRootDesigner), typeof(IRootDesigner))]
public class RootDesignedComponent : Component
{
public RootDesignedComponent()
{
}
}
public class SampleRootDesigner : ComponentDesigner, 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 RootDesignerView m_view;
// 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.
object IRootDesigner.GetView(ViewTechnology technology)
{
if (technology != ViewTechnology.Default)
{
throw new ArgumentException("Not a supported view technology", "technology");
}
if (m_view == null)
{
// 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(this);
}
return m_view;
}
// IRootDesigner.SupportedTechnologies is a required override for an
// IRootDesigner. Default is the view technology used by this designer.
ViewTechnology[] IRootDesigner.SupportedTechnologies
{
get
{
return new ViewTechnology[] {ViewTechnology.Default};
}
}
// RootDesignerView is a simple control that will be displayed
// in the designer window.
private class RootDesignerView : Control
{
private SampleRootDesigner m_designer;
public RootDesignerView(SampleRootDesigner designer)
{
m_designer = designer;
BackColor = Color.Blue;
Font = new Font(Font.FontFamily.Name, 24.0f);
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
// Draws the name of the component in large letters.
pe.Graphics.DrawString(m_designer.Component.Site.Name, Font, Brushes.Yellow, ClientRectangle);
}
}
}
}
package SampleRootDesigner;
import System.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.ComponentModel.Design.*;
import System.Diagnostics.*;
import System.Drawing.*;
import System.Windows.Forms.*;
import System.Windows.Forms.Design.*;
// 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 extends RootDesignedComponent
{
public RootViewSampleComponent()
{
} //RootViewSampleComponent
} //RootViewSampleComponent
// The following attribute associates the SampleRootDesigner designer
// with the SampleComponent component.
/** @ attribute Designer(SampleRootDesigner .class.ToType(),
IRootDesigner .class.ToType())
*/
public class RootDesignedComponent extends Component
{
public RootDesignedComponent()
{
} //RootDesignedComponent
} //RootDesignedComponent
public class SampleRootDesigner extends 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 RootDesignerView mView;
// 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.
public Object GetView(ViewTechnology technology)
{
if (!(technology.Equals(ViewTechnology.WindowsForms))) {
throw new ArgumentException(
"Not a supported view technology", "technology");
}
if (mView == null) {
// 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.
mView = new RootDesignerView(this);
}
return mView;
} //GetView
// IRootDesigner.SupportedTechnologies is a required override for an
// IRootDesigner. WindowsForms is the view technology used by this designer.
/** @property
*/
public ViewTechnology[] get_SupportedTechnologies()
{
return new ViewTechnology[] { ViewTechnology.WindowsForms };
} //get_SupportedTechnologies
// RootDesignerView is a simple control that will be displayed
// in the designer window.
private class RootDesignerView extends Control
{
private SampleRootDesigner mDesigner;
public RootDesignerView(SampleRootDesigner designer)
{
mDesigner = designer;
set_BackColor(Color.get_Blue());
set_Font(new Font(get_Font().get_FontFamily().get_Name(), 24));
} //RootDesignerView
protected void OnPaint(PaintEventArgs pe)
{
super.OnPaint(pe);
// Draws the name of the component in large letters.
pe.get_Graphics().DrawString(
mDesigner.get_Component().get_Site().get_Name(),
get_Font(), Brushes.get_Yellow(),
RectangleF.op_Implicit(get_ClientRectangle()));
} //OnPaint
} //RootDesignerView
} //SampleRootDesigner
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0