Compartir a través de


CatalogPartChrome Clase

Definición

Permite que los desarrolladores reemplacen únicamente la representación de las secciones seleccionadas de los controles CatalogPart de una zona CatalogZoneBase.

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
Herencia
CatalogPartChrome

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la CatalogPartChrome clase para invalidar la representación predeterminada de CatalogPart controles en una CatalogZoneBase zona.

El ejemplo de código tiene tres partes:

  • Control de usuario que permite cambiar los modos de visualización en una página de elementos web.

  • Página web que hospeda todos los controles del ejemplo.

  • Clase que contiene el código fuente de una clase y CatalogZoneBase zona personalizadasCatalogPartChrome.

La primera parte del ejemplo de código es el control de usuario. El código fuente del control de usuario procede de otro tema. Para que este ejemplo de código funcione, debe obtener el archivo .ascx para el control de usuario del tema Walkthrough: Changing Display Modes on a Web Parts Page y colocar el archivo en la misma carpeta que la página .aspx en este ejemplo de código.

La segunda parte del ejemplo es la página web. Tenga en cuenta que hay una Register directiva cerca de la parte superior del archivo para registrar el componente compilado y un prefijo de etiqueta. Tenga en cuenta también que la página hace referencia a la zona de catálogo personalizada mediante el elemento <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>

La tercera parte del ejemplo contiene la implementación del cromo del elemento de catálogo personalizado y la zona de elementos de catálogo. MyCatalogZoneCatalogZone extiende e invalida CreateCatalogPartChrome para devolver el cromo del elemento de catálogo personalizado. MyCatalogPartChrome cambia el color de fondo del control de catálogo en el CreateCatalogPartChromeStyle método . El color de fondo de la zona se cambia en el PerformPreRender método y el texto se agrega al elemento de catálogo en el RenderPartContents método .

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

Comentarios

Chrome hace referencia a los elementos periféricos de la interfaz de usuario (UI) que enmarcan cada control de elementos web o control de servidor contenido en una zona. El cromo de un control incluye su borde, su barra de título y los iconos, el texto del título y el menú verbos que aparecen dentro de la barra de título. La apariencia del cromo se establece en el nivel de zona y se aplica a todos los controles de la zona.

El conjunto de controles de elementos web usa la CatalogPartChrome clase para representar el cromo de CatalogPart los controles. Además, esta clase proporciona una manera para que los desarrolladores personalicen la representación de cualquier CatalogPart control de una CatalogZoneBase zona. Por ejemplo, puede invalidar el CreateCatalogPartChromeStyle método para personalizar algunos atributos de estilo específicos aplicados a la CatalogZoneBase zona.

La CatalogPartChrome clase contiene varios métodos importantes que son útiles cuando se desea invalidar la representación de CatalogPart controles. Uno es el CatalogPartChrome constructor, que se usa al invalidar el CreateCatalogPartChrome método en una zona personalizada CatalogZoneBase para crear una instancia del objeto personalizado CatalogPartChrome . Otro método útil es el RenderPartContents método , que se puede usar para controlar la representación del área de contenido de los controles en una zona (en lugar de elementos de cromo como encabezados, pies de página y barras de título). Por último, si desea un control mediante programación completo sobre todos los aspectos de la representación de los CatalogPart controles, puede invalidar el RenderCatalogPart método .

Notas a los desarrolladores de herederos

Si hereda de la CatalogPartChrome clase , debe crear una zona personalizada CatalogZone para devolver la clase personalizada CatalogPartChrome . En la sección Ejemplo de esta información general de clase se muestra cómo crear una zona personalizada CatalogZone para devolver una clase personalizada CatalogPartChrome .

Constructores

CatalogPartChrome(CatalogZoneBase)

Inicializa una nueva instancia de la clase CatalogPartChrome.

Propiedades

Zone

Obtiene una referencia a la zona CatalogZoneBase asociada.

Métodos

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Crea el objeto de estilo que proporciona los atributos de estilo a cada control CatalogPart procesado por el objeto CatalogPartChrome.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
PerformPreRender()

Realiza tareas que deben llevarse a cabo antes de representar los controles CatalogPart.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Representa un control CatalogPart completo con todas sus secciones.

RenderPartContents(HtmlTextWriter, CatalogPart)

Procesa el área de contenido principal de un control CatalogPart, excepto el encabezado y el pie de página.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también