IRootDesigner 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
루트 수준 디자이너 뷰 기술을 지원합니다.
public interface class IRootDesigner : IDisposable, System::ComponentModel::Design::IDesigner
public interface class IRootDesigner : System::ComponentModel::Design::IDesigner
public interface IRootDesigner : IDisposable, System.ComponentModel.Design.IDesigner
[System.Runtime.InteropServices.ComVisible(true)]
public interface IRootDesigner : IDisposable, System.ComponentModel.Design.IDesigner
public interface IRootDesigner : System.ComponentModel.Design.IDesigner
type IRootDesigner = interface
interface IDesigner
interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type IRootDesigner = interface
interface IDesigner
interface IDisposable
Public Interface IRootDesigner
Implements IDesigner, IDisposable
Public Interface IRootDesigner
Implements IDesigner
- 파생
- 특성
- 구현
예제
다음 코드 예제에서는 IRootDesigner 샘플 사용자 컨트롤과 연결된 구현을 보여 줍니다. 이 IRootDesigner 구현은 메서드를 재정의하여 디자이너 뷰의 배경 보기에 대한 컨트롤을 GetView 표시합니다. 예제를 컴파일하려면 System.Design 어셈블리에 대한 참조를 추가해야 합니다.
이 예제를 사용하려면 프로젝트에 소스 코드를 추가하고 디자이너 뷰에 를 표시 RootViewSampleComponent
하여 사용자 지정 루트 디자이너 뷰를 표시합니다.
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.Design.dll>
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Diagnostics;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
namespace SampleRootDesigner
{
ref class SampleRootDesigner;
// This sample demonstrates how to provide the root designer view, or
// design mode background view, by overriding IRootDesigner.GetView().
// The following attribute associates the SampleRootDesigner designer
// with the SampleComponent component.
[Designer(SampleRootDesigner::typeid,IRootDesigner::typeid)]
public ref class RootDesignedComponent: public Component
{
public:
RootDesignedComponent(){}
};
public ref class SampleRootDesigner: public ComponentDesigner, public IRootDesigner
{
private:
ref class RootDesignerView;
// 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().
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.
virtual Object^ GetView( ViewTechnology technology ) sealed = IRootDesigner::GetView
{
if ( technology != ViewTechnology::WindowsForms )
{
throw gcnew ArgumentException( "Not a supported view technology","technology" );
}
if ( m_view == nullptr )
{
// 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 = gcnew RootDesignerView( this );
}
return m_view;
}
// IRootDesigner.SupportedTechnologies is a required override for an
// IRootDesigner. WindowsForms is the view technology used by this designer.
public:
property array<ViewTechnology>^ SupportedTechnologies
{
virtual array<ViewTechnology>^ get()
{
return gcnew array<ViewTechnology> {ViewTechnology::Default};
}
}
// RootDesignerView is a simple control that will be displayed
// in the designer window.
ref class RootDesignerView: public Control
{
private:
SampleRootDesigner^ m_designer;
public:
RootDesignerView( SampleRootDesigner^ designer )
{
m_designer = designer;
BackColor = Color::Blue;
Font = gcnew System::Drawing::Font( Font->FontFamily->Name,24.0f );
}
protected:
virtual void OnPaint( PaintEventArgs^ pe ) override
{
Control::OnPaint( pe );
// Draws the name of the component in large letters.
pe->Graphics->DrawString( m_designer->Component->Site->Name, Font, Brushes::Yellow, ClientRectangle );
}
};
};
// This sample component inherits from RootDesignedComponent which
// uses the SampleRootDesigner.
public ref class RootViewSampleComponent: public RootDesignedComponent
{
public:
RootViewSampleComponent(){}
};
}
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);
}
}
}
}
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
설명
루트 디자이너는 현재 디자인 타임 문서 개체 계층 구조의 최상위 위치 또는 루트에 있는 디자이너입니다. 루트 디자이너는 인터페이스를 IRootDesigner 구현해야 합니다. 루트 디자이너는 일반적으로 디자이너 뷰 모드에서 배경 보기를 관리하고 일반적으로 현재 디자인 타임 프로젝트의 기본 컨테이너 내에 컨트롤을 표시합니다.
속성
Component |
해당 디자이너가 디자인하고 있는 기본 구성 요소를 가져옵니다. (다음에서 상속됨 IDesigner) |
SupportedTechnologies |
해당 디자이너에서 표시하기 위해 지원할 수 있는 기술을 가져옵니다. |
Verbs |
디자이너가 지원하는 디자인 타임 동사의 컬렉션을 가져옵니다. (다음에서 상속됨 IDesigner) |
메서드
Dispose() |
관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다. (다음에서 상속됨 IDisposable) |
DoDefaultAction() |
이 디자이너에 대한 기본 작업을 수행합니다. (다음에서 상속됨 IDesigner) |
GetView(ViewTechnology) |
지정한 뷰 기술에 대한 뷰 개체를 가져옵니다. |
Initialize(IComponent) |
디자이너를 지정된 구성 요소로 초기화합니다. (다음에서 상속됨 IDesigner) |
적용 대상
.NET