Partilhar via


EditorPartChrome Classe

Definição

Permite que os desenvolvedores substituam a renderização apenas pelas seções selecionadas dos controles de EditorPart em uma zona de EditorZoneBase.

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

Exemplos

O exemplo de código a seguir demonstra como usar a EditorPartChrome classe para substituir a renderização padrão de EditorPart controles em uma EditorZoneBase zona.

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

  • Um controle de usuário que permite alterar os modos de exibição em uma página Web Parts.

  • Uma página da Web que hospeda todos os controles no exemplo.

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

A primeira parte do exemplo de código é o controle do usuário. O código-fonte para o controle do usuário vem de outro tópico. Para que este exemplo de código funcione, você precisa obter o arquivo .ascx para o controle de usuário do Passo a passo: alterando modos de exibição em um tópico de página Web Parts e colocar o arquivo na mesma pasta que a página .aspx neste exemplo de código.

A segunda parte do exemplo é a página da Web. Observe que há uma Register diretiva próxima à parte superior do arquivo para registrar o componente compilado e um prefixo de marca. Observe também que a página faz referência à zona de editor 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 personalizada do chrome e da zona de parte do editor. MyEditorZoneEditorZone estende e substitui CreateEditorPartChrome para retornar o chrome da parte do editor personalizado. MyEditorPartChrome altera a cor da tela de fundo do controle de parte do editor no CreateEditorPartChromeStyle método. A cor da tela de fundo da zona é alterada no método e o PerformPreRender 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

Comentários

O Chrome refere-se aos elementos da interface do usuário periférica que enquadram cada controle de Web Parts ou controle de servidor contido em uma zona. O cromo para um controle inclui sua borda, sua barra de título e os ícones, texto de título e menu de verbos que aparecem dentro da barra de título. A aparência do cromo é definida no nível da zona e se aplica a todos os controles na zona.

O conjunto de controle Web Parts usa a EditorPartChrome classe para renderizar o cromo para EditorPart controles. Além disso, essa classe fornece uma maneira para os desenvolvedores personalizarem a renderização de quaisquer EditorPart controles em uma EditorZoneBase zona. Por exemplo, você pode substituir 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 você deseja substituir a renderização de EditorPart controles. Um deles é o EditorPartChrome construtor, que você usa ao substituir o CreateEditorPartChrome método em uma classe personalizada EditorZoneBase para criar uma instância do objeto personalizado EditorPartChrome . Outro método útil é o RenderPartContents método, que você pode usar para controlar a renderização da área de conteúdo dos controles em uma zona (em vez de elementos cromados, como cabeçalhos, rodapés e barras de título). Por fim, se você quiser um controle programático completo sobre todos os aspectos da renderização dos EditorPart controles, poderá substituir o RenderEditorPart método.

Notas aos Herdeiros

Se você herdar da EditorPartChrome classe, deverá criar uma zona personalizada EditorZone para retornar sua classe personalizada EditorPartChrome . A seção Exemplo desta visão geral de classe demonstra como criar uma zona personalizada EditorZone para retornar uma classe personalizada EditorPartChrome

Construtores

EditorPartChrome(EditorZoneBase)

Inicializa uma nova instância da classe EditorPartChrome.

Propriedades

Zone

Obtém uma referência à zona EditorZoneBase associada.

Métodos

CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Cria o objeto de estilo que fornece os atributos de estilo para cada controle de EditorPart renderizado pelo objeto de EditorPartChrome.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
PerformPreRender()

Executa tarefas que devem ser executadas antes da renderização dos controles de EditorPart.

RenderEditorPart(HtmlTextWriter, EditorPart)

Renderiza um controle de EditorPart completo com todas as suas seções.

RenderPartContents(HtmlTextWriter, EditorPart)

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

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a