EditorPartChrome Classe

Definição

Permite aos programadores sobrepor a renderização apenas para as secções selecionadas de EditorPart controlos numa EditorZoneBase zona.

public ref class EditorPartChrome
public class EditorPartChrome
type EditorPartChrome = class
Public Class EditorPartChrome
Herança
EditorPartChrome

Exemplos

O exemplo de código seguinte demonstra como usar a EditorPartChrome classe para sobrescrever a renderização padrão dos EditorPart controlos numa EditorZoneBase zona.

O exemplo de código tem três partes:

  • Um controlo de utilizador que permite alterar modos de visualização numa página de Web Parts.

  • Uma página web que aloja todos os controlos do exemplo.

  • Uma classe que contém o código-fonte de uma classe e EditorPartChrome zona personalizadasEditorZoneBase.

A primeira parte do exemplo do código é o controlo do utilizador. O código-fonte do controlo do utilizador vem de outro tópico. Para que este exemplo de código funcione, precisa de obter o ficheiro .ascx para o controlo do utilizador a partir do tópico Walkthrough: Changing Display Modes on a Web Parts Page , e colocar o ficheiro na mesma pasta da página .aspx neste exemplo de código.

A segunda parte do exemplo é a página Web. Note que existe uma Register diretiva perto do topo do ficheiro para registar o componente compilado e um prefixo de etiqueta. Note também que a página faz referência à zona de edição personalizada usando o elemento <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>

A terceira parte do exemplo contém a implementação da parte do editor personalizado Chrome e da zona da parte do editor. MyEditorZone Estende EditorZone e sobrepõe CreateEditorPartChrome para devolver a parte do editor personalizado Chrome. MyEditorPartChrome altera a cor de fundo do controlo de parte do editor no CreateEditorPartChromeStyle método. A cor de fundo da zona é alterada no PerformPreRender método, e o texto é adicionado à parte do editor no RenderPartContents método.

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

Observações

Chrome refere-se aos elementos periféricos da interface de utilizador (UI) que enquadram cada controlo Web Parts ou controlo de servidor contido numa zona. O cromo de um controlo inclui a sua borda, a sua barra de título e os ícones, texto do título e verbos que aparecem na barra de título. A aparência do cromo é definida ao nível da zona e aplica-se a todos os controlos da zona.

O conjunto de controlos Web Parts usa a EditorPartChrome classe para renderizar o cromo dos EditorPart controlos. Além disso, esta classe oferece uma forma para os programadores personalizarem a renderização de quaisquer EditorPart controlos numa EditorZoneBase zona. Por exemplo, pode sobrescrever o CreateEditorPartChromeStyle método para personalizar alguns atributos de estilo específicos definidos na EditorZoneBase zona.

A EditorPartChrome classe contém vários métodos importantes que são úteis quando se quer sobrepor a renderização dos EditorPart controlos. Um é o EditorPartChrome construtor, que usas quando sobrepões o CreateEditorPartChrome método numa classe personalizada EditorZoneBase para criar uma instância do teu objeto personalizado EditorPartChrome . Outro método útil é o RenderPartContents método, que pode usar para controlar a renderização da área de conteúdo dos controlos numa zona (ao contrário de elementos do Chrome como cabeçalhos, rodapés e barras de título). Finalmente, se quiseres controlo programático completo sobre todos os aspetos da renderização dos EditorPart controlos, podes sobrepor o RenderEditorPart método.

Notas para Herdeiros

Se herdar da EditorPartChrome classe, deve criar uma zona personalizada EditorZone para devolver a sua classe personalizada EditorPartChrome . A secção de Exemplos desta visão geral da classe demonstra como criar uma zona personalizada EditorZone para devolver uma classe personalizada EditorPartChrome

Construtores

Name Description
EditorPartChrome(EditorZoneBase)

Inicializa uma nova instância da EditorPartChrome classe.

Propriedades

Name Description
Zone

Recebe uma referência para a zona associada EditorZoneBase .

Métodos

Name Description
CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Cria o objeto style que fornece atributos style para cada EditorPart controlo renderizado pelo EditorPartChrome objeto.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
PerformPreRender()

Realiza tarefas que devem ser feitas antes dos controlos de renderização EditorPart .

RenderEditorPart(HtmlTextWriter, EditorPart)

Renderiza um controlo completo EditorPart com todas as suas secções.

RenderPartContents(HtmlTextWriter, EditorPart)

Renderiza a área principal de conteúdo de um EditorPart controlo, excluindo o cabeçalho e o rodapé.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a