EditorPartChrome クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
開発者が、EditorPart ゾーン内の EditorZoneBase コントロールの選択したセクションの表示だけをオーバーライドできるようにします。
public ref class EditorPartChrome
public class EditorPartChrome
type EditorPartChrome = class
Public Class EditorPartChrome
- 継承
-
EditorPartChrome
例
次のコード例は、クラスを使用してゾーン内の EditorPartChrome コントロールの既定の EditorPart レンダリングをオーバーライドする方法を EditorZoneBase 示しています。
コード例には、次の 3 つの部分があります。
Web パーツ ページで表示モードを変更できるユーザー コントロール。
この例のすべてのコントロールをホストする Web ページ。
カスタム EditorPartChrome クラスと EditorZoneBase ゾーンのソース コードを含むクラス。
コード例の最初の部分は、ユーザー コントロールです。 ユーザー コントロールのソース コードは、別のトピックから取得します。 このコード例を機能させるには、「チュートリアル: Web パーツ ページの表示モードの変更」トピックからユーザー コントロールの .ascx ファイルを取得し、このコード例の .aspx ページと同じフォルダーにファイルを配置する必要があります。
この例の 2 番目の部分は Web ページです。 コンパイル済みコンポーネントとタグ プレフィックスを登録するディレクティブが Register
ファイルの先頭付近に存在します。 また、ページは要素 <aspSample:MyEditorZone>
を使用してカスタム エディター ゾーンを参照します。
<%@ Page Language="C#" %>
<%@ register tagprefix="aspSample"
Namespace="Samples.AspNet.CS.Controls" %>
<%@ Register TagPrefix="uc1" TagName="DisplayModeMenuCS" Src="~/DisplayModeMenuCS.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Web Parts Page</title>
</head>
<body>
<h1>Web Parts Demonstration Page</h1>
<form runat="server" id="form1">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuCS runat="server" ID="DisplayModeMenu" />
<br />
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top">
<asp:webpartzone id="SideBarZone" runat="server"
headertext="Sidebar">
<zonetemplate>
</zonetemplate>
</asp:webpartzone>
<aspSample:MyEditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1"
runat="server" />
<asp:LayoutEditorPart ID="LayoutEditorPart1"
runat="server" />
</ZoneTemplate>
</aspSample:MyEditorZone>
</td>
<td valign="top">
<asp:webpartzone id="MainZone" runat="server" headertext="Main">
<zonetemplate>
<asp:label id="contentPart" runat="server" title="Content">
<h2>Welcome to My Home Page</h2>
<p>Use links to visit my favorite sites!</p>
</asp:label>
</zonetemplate>
</asp:webpartzone>
</td>
<td valign="top">
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ register tagprefix="aspSample"
Namespace="Samples.AspNet.VB.Controls" %>
<%@ Register TagPrefix="uc1" TagName="DisplayModeMenuVB" Src="~/DisplayModeMenuVB.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Web Parts Page</title>
</head>
<body>
<h1>Web Parts Demonstration Page</h1>
<form runat="server" id="form1">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuVB runat="server" ID="DisplayModeMenu" />
<br />
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top">
<asp:webpartzone id="SideBarZone" runat="server"
headertext="Sidebar">
<zonetemplate>
</zonetemplate>
</asp:webpartzone>
<aspSample:MyEditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1"
runat="server" />
<asp:LayoutEditorPart ID="LayoutEditorPart1"
runat="server" />
</ZoneTemplate>
</aspSample:MyEditorZone>
</td>
<td valign="top">
<asp:webpartzone id="MainZone" runat="server" headertext="Main">
<zonetemplate>
<asp:label id="contentPart" runat="server" title="Content">
<h2>Welcome to My Home Page</h2>
<p>Use links to visit my favorite sites!</p>
</asp:label>
</zonetemplate>
</asp:webpartzone>
</td>
<td valign="top">
</td>
</tr>
</table>
</form>
</body>
</html>
この例の 3 番目の部分には、カスタム エディター パーツのクロムとエディター パーツ ゾーンの実装が含まれています。 MyEditorZone
は、カスタム エディター パーツのクロムを返すように拡張 EditorZone およびオーバーライド CreateEditorPartChrome します。 MyEditorPartChrome
は、メソッド内のエディター パーツ コントロールの背景色を CreateEditorPartChromeStyle 変更します。 ゾーンの背景色はメソッドで PerformPreRender 変更され、テキストはメソッドのエディター パーツに RenderPartContents 追加されます。
namespace Samples.AspNet.CS.Controls
{
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class MyEditorPartChrome : EditorPartChrome
{
public MyEditorPartChrome(EditorZoneBase zone)
: base(zone)
{
}
protected override Style CreateEditorPartChromeStyle(EditorPart editorPart, PartChromeType chromeType)
{
Style editorStyle = base.CreateEditorPartChromeStyle(editorPart, chromeType);
editorStyle.BackColor = Color.Bisque;
return editorStyle;
}
public override void PerformPreRender()
{
Style zoneStyle = new Style();
zoneStyle.BackColor = Color.Cornsilk;
Zone.Page.Header.StyleSheet.RegisterStyle(zoneStyle, null);
Zone.MergeStyle(zoneStyle);
}
protected override void RenderPartContents(HtmlTextWriter writer, EditorPart editorPart)
{
writer.AddStyleAttribute("color", "red");
writer.RenderBeginTag("p");
writer.Write("Apply all changes");
writer.RenderEndTag();
editorPart.RenderControl(writer);
}
public override void RenderEditorPart(HtmlTextWriter writer, EditorPart editorPart)
{
base.RenderEditorPart(writer, editorPart);
}
}
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class MyEditorZone : EditorZone
{
protected override EditorPartChrome CreateEditorPartChrome()
{
return new MyEditorPartChrome(this);
}
}
}
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyEditorPartChrome
Inherits EditorPartChrome
Public Sub New(ByVal zone As EditorZoneBase)
MyBase.New(zone)
End Sub
Protected Overrides Function CreateEditorPartChromeStyle(ByVal editorPart As System.Web.UI.WebControls.WebParts.EditorPart, ByVal chromeType As System.Web.UI.WebControls.WebParts.PartChromeType) As System.Web.UI.WebControls.Style
Dim editorStyle As Style
editorStyle = MyBase.CreateEditorPartChromeStyle(editorPart, chromeType)
editorStyle.BackColor = Drawing.Color.Bisque
Return editorStyle
End Function
Public Overrides Sub PerformPreRender()
Dim zoneStyle As Style = New Style
zoneStyle.BackColor = Drawing.Color.Cornsilk
Zone.Page.Header.StyleSheet.RegisterStyle(zoneStyle, Nothing)
Zone.MergeStyle(zoneStyle)
End Sub
Protected Overrides Sub RenderPartContents(ByVal writer As System.Web.UI.HtmlTextWriter, ByVal editorPart As System.Web.UI.WebControls.WebParts.EditorPart)
writer.AddStyleAttribute("color", "red")
writer.RenderBeginTag("p")
writer.Write("Apply all changes")
writer.RenderEndTag()
editorPart.RenderControl(writer)
End Sub
Public Overrides Sub RenderEditorPart(ByVal writer As System.Web.UI.HtmlTextWriter, ByVal editorPart As System.Web.UI.WebControls.WebParts.EditorPart)
MyBase.RenderEditorPart(writer, editorPart)
End Sub
End Class
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyEditorZone
Inherits EditorZone
Protected Overrides Function CreateEditorPartChrome() As System.Web.UI.WebControls.WebParts.EditorPartChrome
Return New MyEditorPartChrome(Me)
End Function
End Class
End Namespace
注釈
Chrome は、ゾーンに含まれる各Web パーツ コントロールまたはサーバー コントロールをフレーム化する周辺機器ユーザー インターフェイス (UI) 要素を指します。 コントロールのクロムには、境界線、タイトル バー、タイトル バー内に表示されるアイコン、タイトル テキスト、動詞メニューが含まれます。 クロムの外観はゾーン レベルで設定され、ゾーン内のすべてのコントロールに適用されます。
Web パーツ コントロール セットは、このクラスをEditorPartChrome使用してコントロールのクロムをEditorPartレンダリングします。 さらに、このクラスは、開発者がゾーン内のコントロール EditorPart のレンダリングをカスタマイズする方法を EditorZoneBase 提供します。 たとえば、このメソッドを CreateEditorPartChromeStyle オーバーライドして、ゾーンで定義されている特定のスタイル属性を EditorZoneBase カスタマイズできます。
この EditorPartChrome クラスには、コントロールのレンダリング EditorPart をオーバーライドする場合に役立ついくつかの重要なメソッドが含まれています。 1 つは EditorPartChrome 、カスタム クラスのメソッドをオーバーライド CreateEditorPartChrome してカスタム EditorZoneBase オブジェクトのインスタンスを作成するときに使用するコンストラクターです EditorPartChrome 。 もう 1 つの便利な方法は RenderPartContents 、(ヘッダー、フッター、タイトル バーなどのクロム要素ではなく) ゾーン内のコントロールのコンテンツ領域のレンダリングを制御するために使用できるメソッドです。 最後に、コントロールのレンダリング EditorPart のすべての側面をプログラムで完全に制御する場合は、メソッドを RenderEditorPart オーバーライドできます。
注意 (継承者)
クラスから継承する EditorPartChrome 場合は、カスタマイズしたクラスを返すためにカスタマイズされた EditorZone ゾーンを EditorPartChrome 作成する必要があります。 このクラスの概要の例セクションでは、カスタマイズされたクラスを返すカスタマイズされた EditorZone ゾーンを作成する方法を EditorPartChrome 示します
コンストラクター
EditorPartChrome(EditorZoneBase) |
EditorPartChrome クラスの新しいインスタンスを初期化します。 |
プロパティ
Zone |
関連付けられた EditorZoneBase ゾーンへの参照を取得します。 |
メソッド
CreateEditorPartChromeStyle(EditorPart, PartChromeType) |
EditorPart オブジェクトによって表示される各 EditorPartChrome コントロールのスタイル属性を提供するスタイル オブジェクトを作成します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
PerformPreRender() |
EditorPart コントロールを表示する前に行う必要があるタスクを実行します。 |
RenderEditorPart(HtmlTextWriter, EditorPart) |
完全な EditorPart コントロールとそのすべてのセクションを表示します。 |
RenderPartContents(HtmlTextWriter, EditorPart) |
ヘッダーおよびフッターを除いた EditorPart コントロールのメインの内容表示領域を表示します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |