EditorPartChrome Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. MyEditorZone
EditorZone 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) |