Partager via


EditorPartChrome Classe

Définition

Permet aux développeurs de substituer le rendu uniquement pour les sections sélectionnées de contrôles EditorPart dans une zone EditorZoneBase.

public ref class EditorPartChrome
public class EditorPartChrome
type EditorPartChrome = class
Public Class EditorPartChrome
Héritage
EditorPartChrome

Exemples

L’exemple de code suivant montre comment utiliser la EditorPartChrome classe pour remplacer le rendu par défaut des EditorPart contrôles dans une EditorZoneBase zone.

L’exemple de code comporte trois parties :

  • Contrôle utilisateur qui vous permet de modifier les modes d’affichage sur une page composants WebPart.

  • Page Web qui héberge tous les contrôles dans l’exemple.

  • Classe qui contient le code source d’une classe et EditorZoneBase d’une zone personnaliséesEditorPartChrome.

La première partie de l’exemple de code est le contrôle utilisateur. Le code source du contrôle utilisateur provient d’une autre rubrique. Pour que cet exemple de code fonctionne, vous devez obtenir le fichier .ascx pour le contrôle utilisateur à partir de la procédure pas à pas : modification des modes d’affichage sur une rubrique composants WebPart Page et placer le fichier dans le même dossier que la page .aspx dans cet exemple de code.

La deuxième partie de l’exemple est la page Web. Notez qu’il existe une Register directive près du haut du fichier pour inscrire le composant compilé et un préfixe d’étiquette. Notez également que la page référence la zone d’éditeur personnalisée à l’aide de l’élément <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>

La troisième partie de l’exemple contient l’implémentation de la partie éditeur personnalisée chrome et de la zone de partie éditeur. MyEditorZoneEditorZone étend et remplace CreateEditorPartChrome pour renvoyer le chrome du composant Éditeur personnalisé. MyEditorPartChrome modifie la couleur d’arrière-plan du contrôle de composant éditeur dans la CreateEditorPartChromeStyle méthode. La couleur d’arrière-plan de la zone est modifiée dans la méthode, et le PerformPreRender texte est ajouté à la partie éditeur de la RenderPartContents méthode.

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

Remarques

Chrome fait référence aux éléments d’interface utilisateur périphérique qui cadrent chaque contrôle composants WebPart contrôle ou contrôle serveur contenu dans une zone. Le chrome d’un contrôle inclut sa bordure, sa barre de titre et les icônes, le texte du titre et le menu verbes qui apparaissent dans la barre de titre. L’apparence du chrome est définie au niveau de la zone et s’applique à tous les contrôles de la zone.

Le jeu de contrôles composants WebPart utilise la EditorPartChrome classe pour afficher le chrome pour EditorPart les contrôles. De plus, cette classe permet aux développeurs de personnaliser le rendu de tous les EditorPart contrôles d’une EditorZoneBase zone. Par exemple, vous pouvez remplacer la CreateEditorPartChromeStyle méthode pour personnaliser certains attributs de style spécifiques définis dans la EditorZoneBase zone.

La EditorPartChrome classe contient plusieurs méthodes importantes qui sont utiles lorsque vous souhaitez remplacer le rendu des EditorPart contrôles. Il s’agit du EditorPartChrome constructeur, que vous utilisez lorsque vous remplacez la CreateEditorPartChrome méthode dans une classe personnalisée EditorZoneBase pour créer une instance de votre objet personnalisé EditorPartChrome . Une autre méthode utile est la RenderPartContents méthode, que vous pouvez utiliser pour contrôler le rendu de la zone de contenu des contrôles dans une zone (par opposition aux éléments chromes tels que les en-têtes, les pieds de page et les barres de titre). Enfin, si vous souhaitez effectuer un contrôle programmatique sur tous les aspects du rendu EditorPart des contrôles, vous pouvez remplacer la RenderEditorPart méthode.

Notes pour les héritiers

Si vous héritez de la EditorPartChrome classe, vous devez créer une zone personnalisée pour renvoyer votre classe personnalisée EditorZone EditorPartChrome . La section Exemple de cette vue d’ensemble de la classe montre comment créer une zone personnalisée pour retourner une classe personnalisée EditorZone EditorPartChrome

Constructeurs

EditorPartChrome(EditorZoneBase)

Initialise une nouvelle instance de la classe EditorPartChrome.

Propriétés

Zone

Obtient une référence à la zone EditorZoneBase associée.

Méthodes

CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Crée l'objet de style qui fournit des attributs de style pour chaque contrôle EditorPart restitué par l'objet EditorPartChrome.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
PerformPreRender()

Exécute des tâches qui doivent être effectuées avant le rendu des contrôles EditorPart.

RenderEditorPart(HtmlTextWriter, EditorPart)

Génère le rendu d'un contrôle EditorPart complet avec toutes ses sections.

RenderPartContents(HtmlTextWriter, EditorPart)

Génère le rendu de la zone de contenu principale d'un contrôle EditorPart, à l'exclusion de l'en-tête et du pied de page.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à