CatalogPartChrome Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет разработчикам возможность переопределять способ отрисовки выбранных разделов элемента управления CatalogPart в зоне CatalogZoneBase.
public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
- Наследование
-
CatalogPartChrome
Примеры
В следующем примере кода показано, как использовать CatalogPartChrome класс для переопределения отображения CatalogPart элементов управления по умолчанию в CatalogZoneBase зоне.
Пример кода состоит из трех частей:
Пользовательский элемент управления, позволяющий изменять режимы отображения на странице веб-частей.
Веб-страница, на которую размещаются все элементы управления в примере.
Класс , содержащий исходный код для пользовательского CatalogPartChrome класса и CatalogZoneBase зоны.
Первая часть примера кода — это пользовательский элемент управления. Исходный код для пользовательского элемента управления поступает из другого раздела. Чтобы этот пример кода работал, необходимо получить ASCX-файл для пользовательского элемента управления из раздела Walkthrough: Changing Display Modes on a Web Parts Page (Пошаговое руководство: изменение режимов отображения на странице веб-частей ) и поместить файл в ту же папку, что и страница .aspx в этом примере кода.
Вторая часть примера — веб-страница. Обратите внимание, что в верхней части файла есть Register
директива для регистрации скомпилированного компонента и префикса тега. Также обратите внимание, что страница ссылается на настраиваемую зону каталога с помощью элемента <aspSample:MyCatalogZone>
.
<%@ 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:MyCatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:ImportCatalogPart ID="ImportCatalog" runat="server" />
</ZoneTemplate>
</aspSample:MyCatalogZone>
</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:MyCatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:ImportCatalogPart ID="ImportCatalog" runat="server" />
</ZoneTemplate>
</aspSample:MyCatalogZone>
</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>
Третья часть примера содержит реализацию пользовательского хрома части каталога и зоны части каталога.
MyCatalogZone
CatalogZone расширяет и переопределяетCreateCatalogPartChrome, возвращая хром пользовательской части каталога.
MyCatalogPartChrome
изменяет цвет фона элемента управления каталогом в методе CreateCatalogPartChromeStyle . Цвет фона зоны изменяется в методе PerformPreRender , а текст добавляется в часть каталога в методе RenderPartContents .
namespace Samples.AspNet.CS.Controls
{
/// <summary>
/// Summary description for source
/// </summary>
public class MyCatalogPartChrome : CatalogPartChrome
{
public MyCatalogPartChrome(CatalogZoneBase zone)
: base(zone)
{
}
protected override Style CreateCatalogPartChromeStyle(CatalogPart catalogPart, PartChromeType chromeType)
{
Style catalogStyle = base.CreateCatalogPartChromeStyle(catalogPart, chromeType);
catalogStyle.BackColor = Color.Bisque;
return catalogStyle;
}
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, CatalogPart catalogPart)
{
writer.AddStyleAttribute("color", "red");
writer.RenderBeginTag("p");
writer.Write("Apply all changes");
writer.RenderEndTag();
catalogPart.RenderControl(writer);
}
public override void RenderCatalogPart(HtmlTextWriter writer, CatalogPart catalogPart)
{
base.RenderCatalogPart(writer, catalogPart);
}
}
public class MyCatalogZone : CatalogZone
{
protected override CatalogPartChrome CreateCatalogPartChrome()
{
return new MyCatalogPartChrome(this);
}
}
}
Namespace Samples.AspNet.VB.Controls
Public Class MyCatalogPartChrome
Inherits CatalogPartChrome
Public Sub New(ByVal zone As CatalogZoneBase)
MyBase.New(zone)
End Sub
Protected Overrides Function CreateCatalogPartChromeStyle(ByVal catalogPart As System.Web.UI.WebControls.WebParts.CatalogPart, ByVal chromeType As System.Web.UI.WebControls.WebParts.PartChromeType) As System.Web.UI.WebControls.Style
Dim editorStyle As Style
editorStyle = MyBase.CreateCatalogPartChromeStyle(catalogPart, 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 catalogPart As System.Web.UI.WebControls.WebParts.CatalogPart)
writer.AddStyleAttribute("color", "red")
writer.RenderBeginTag("p")
writer.Write("Apply all changes")
writer.RenderEndTag()
catalogPart.RenderControl(writer)
End Sub
Public Overrides Sub RenderCatalogPart(ByVal writer As System.Web.UI.HtmlTextWriter, ByVal catalogPart As System.Web.UI.WebControls.WebParts.CatalogPart)
MyBase.RenderCatalogPart(writer, catalogPart)
End Sub
End Class
Public Class MyCatalogZone
Inherits CatalogZone
Protected Overrides Function CreateCatalogPartChrome() As System.Web.UI.WebControls.WebParts.CatalogPartChrome
Return New MyCatalogPartChrome(Me)
End Function
End Class
End Namespace
Комментарии
Chrome относится к периферийным элементам пользовательского интерфейса, которые обрамляют каждый элемент управления веб-частей или серверный элемент управления, содержащийся в зоне. Хром для элемента управления включает его границу, строку заголовка, а также значки, текст заголовка и меню команд, которые отображаются в строке заголовка. Внешний вид хрома задается на уровне зоны и применяется ко всем элементам управления в зоне.
Набор элементов управления веб-частей использует CatalogPartChrome класс для отрисовки хрома для CatalogPart элементов управления. Кроме того, этот класс предоставляет разработчикам способ настройки отрисовки любых CatalogPart элементов управления в CatalogZoneBase зоне. Например, можно переопределить CreateCatalogPartChromeStyle метод , чтобы настроить некоторые атрибуты стиля, применяемые CatalogZoneBase к зоне.
Класс CatalogPartChrome содержит несколько важных методов, которые полезны, если требуется переопределить отрисовку CatalogPart элементов управления. Одним из них является CatalogPartChrome конструктор, который используется при переопределении CreateCatalogPartChrome метода в настраиваемой CatalogZoneBase зоне для создания экземпляра пользовательского CatalogPartChrome объекта. Другим полезным методом RenderPartContents является метод , который можно использовать для управления отрисовкой области содержимого элементов управления в зоне (в отличие от элементов хрома, таких как колонтитулы, нижние колонтитулы и строки заголовков). Наконец, если требуется полный программный контроль над всеми аспектами отрисовки CatalogPart элементов управления, можно переопределить RenderCatalogPart метод .
Примечания для тех, кто наследует этот метод
При наследовании CatalogPartChrome от класса необходимо создать настраиваемую CatalogZone зону для возврата настроенного CatalogPartChrome класса. В разделе Пример для обзора этого класса показано, как создать настраиваемую CatalogZone зону для возврата настроенного CatalogPartChrome класса.
Конструкторы
CatalogPartChrome(CatalogZoneBase) |
Инициализирует новый экземпляр класса CatalogPartChrome. |
Свойства
Zone |
Получает ссылку на сопоставленную зону CatalogZoneBase. |
Методы
CreateCatalogPartChromeStyle(CatalogPart, PartChromeType) |
Создает объект стиля, который передает атрибуты стиля для каждого элемента управления CatalogPart, отображаемого объектом CatalogPartChrome. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
PerformPreRender() |
Выполняет задачи, которые необходимо завершить перед отрисовкой элементов управления CatalogPart. |
RenderCatalogPart(HtmlTextWriter, CatalogPart) |
Выполняет полное отображение элемента управления CatalogPart и всех его разделов. |
RenderPartContents(HtmlTextWriter, CatalogPart) |
Отображает основную область содержимого элемента управления CatalogPart за исключением колонтитулов. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |