EditorPartChrome Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет разработчикам возможность переопределять способ отрисовки выбранных разделов элемента управления EditorPart в зоне EditorZoneBase.
public ref class EditorPartChrome
public class EditorPartChrome
type EditorPartChrome = class
Public Class EditorPartChrome
- Наследование
-
EditorPartChrome
Примеры
В следующем примере кода показано, как использовать EditorPartChrome класс для переопределения отрисовки EditorPart элементов управления по умолчанию в EditorZoneBase зоне.
Пример кода состоит из трех частей:
Пользовательский элемент управления, позволяющий изменять режимы отображения на странице веб-части.
Веб-страница, на которую размещены все элементы управления в примере.
Класс, содержащий исходный код для пользовательского EditorPartChrome класса и EditorZoneBase зоны.
Первая часть примера кода — это пользовательский элемент управления. Исходный код пользовательского элемента управления поступает из другого раздела. Чтобы этот пример кода работал, необходимо получить ASCX-файл для пользовательского элемента управления из пошагового руководства: изменение режимов отображения в разделе страницы веб-части и поместить файл в ту же папку, что и ASPX-страница в этом примере кода.
Второй частью примера является веб-страница. Обратите внимание, что в верхней части файла есть 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>
Третья часть примера содержит реализацию хрома пользовательской части редактора и зоны частей редактора. 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 относится к элементам пользовательского интерфейса периферийных устройств, которые обрамляют каждый элемент управления веб-части или серверный элемент управления, содержащийся в зоне. Хром для элемента управления включает его границу, строку заголовка и значки, текст заголовка и меню команд, которые отображаются в строке заголовка. Внешний вид хрома задается на уровне зоны и применяется ко всем элементам управления в зоне.
Набор элементов управления веб-части использует EditorPartChrome класс для отрисовки хрома для EditorPart элементов управления. Кроме того, этот класс предоставляет разработчикам способ настройки отрисовки любых EditorPart элементов управления в EditorZoneBase зоне. Например, можно переопределить CreateEditorPartChromeStyle метод для настройки определенных атрибутов стиля, определенных в EditorZoneBase зоне.
Класс EditorPartChrome содержит несколько важных методов, которые полезны при переопределении отрисовки EditorPart элементов управления. Один из них — EditorPartChrome конструктор, который используется при переопределении CreateEditorPartChrome метода в пользовательском EditorZoneBase классе для создания экземпляра пользовательского EditorPartChrome объекта. Другим полезным методом 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) |