Sdílet prostřednictvím


EditorPartChrome Třída

Definice

Umožňuje vývojářům přepsat vykreslování jenom pro vybrané části ovládacích EditorPart prvků v EditorZoneBase zóně.

public ref class EditorPartChrome
public class EditorPartChrome
type EditorPartChrome = class
Public Class EditorPartChrome
Dědičnost
EditorPartChrome

Příklady

Následující příklad kódu ukazuje, jak pomocí EditorPartChrome třídy přepsat výchozí vykreslování ovládacích EditorPart prvků v EditorZoneBase zóně.

Příklad kódu má tři části:

  • Uživatelský ovládací prvek, který umožňuje změnit režimy zobrazení na Webové části stránce.

  • Webová stránka, která je hostitelem všech ovládacích prvků v příkladu.

  • Třída, která obsahuje zdrojový kód pro vlastní EditorPartChrome třídu a EditorZoneBase zónu.

První část příkladu kódu je uživatelský ovládací prvek. Zdrojový kód uživatelského ovládacího prvku pochází z jiného tématu. Aby tento příklad kódu fungoval, musíte získat soubor .ascx pro uživatelský ovládací prvek z návodu: Změna režimů zobrazení v tématu stránky Webové části a umístit soubor do stejné složky jako stránka .aspx v tomto příkladu kódu.

Druhá část příkladu je webová stránka. Všimněte si, že v horní části souboru existuje direktiva Register pro registraci kompilované komponenty a předpony značky. Všimněte si také, že stránka odkazuje na vlastní zónu editoru pomocí elementu <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>

Třetí část příkladu obsahuje implementaci vlastní části editoru chrome a zóny částí editoru. MyEditorZone rozšiřuje a přepisuje EditorZone CreateEditorPartChrome , aby se vrátil chrome vlastních částí editoru. MyEditorPartChrome změní barvu pozadí ovládacího prvku části editoru CreateEditorPartChromeStyle v metodě. Barva pozadí zóny se v PerformPreRender metodě změní a text se přidá do části editoru v RenderPartContents metodě.

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

Poznámky

Chrome odkazuje na prvky uživatelského rozhraní periferního zařízení, které zarámují jednotlivé ovládací prvky Webové části nebo ovládací prvek serveru obsažené v zóně. Chrome ovládacího prvku obsahuje jeho ohraničení, záhlaví a ikony, text nadpisu a nabídku sloves, která se zobrazí v záhlaví. Vzhled chromu je nastavený na úrovni zóny a vztahuje se na všechny ovládací prvky v zóně.

Sada ovládacích prvků Webové části používá EditorPartChrome třídu k vykreslení chromu pro EditorPart ovládací prvky. Kromě toho tato třída poskytuje vývojářům způsob, jak přizpůsobit vykreslování všech EditorPart ovládacích prvků v EditorZoneBase zóně. Můžete například přepsat metodu CreateEditorPartChromeStyle tak, aby přizpůsobila určité atributy stylu definované v EditorZoneBase zóně.

Třída EditorPartChrome obsahuje několik důležitých metod, které jsou užitečné, když chcete přepsat vykreslování ovládacích EditorPart prvků. Jednou je EditorPartChrome konstruktor, který použijete při přepsání CreateEditorPartChrome metody ve vlastní EditorZoneBase třídě k vytvoření instance vlastního EditorPartChrome objektu. Další užitečnou metodou je RenderPartContents metoda, kterou můžete použít k řízení vykreslování oblasti obsahu ovládacích prvků v zóně (na rozdíl od prvků chromu, jako jsou záhlaví, zápatí a záhlaví). Pokud chcete dokončit programovou kontrolu nad všemi aspekty vykreslování EditorPart ovládacích prvků, můžete metodu RenderEditorPart přepsat.

Poznámky pro dědice

Pokud dědíte z třídy, musíte vytvořit přizpůsobenou EditorZone zónu EditorPartChrome pro vrácení přizpůsobené EditorPartChrome třídy. Část Příklad této třídy přehled ukazuje, jak vytvořit přizpůsobenou EditorZone zónu pro vrácení přizpůsobené EditorPartChrome třídy.

Konstruktory

EditorPartChrome(EditorZoneBase)

Inicializuje novou instanci EditorPartChrome třídy.

Vlastnosti

Zone

Získá odkaz na přidruženou EditorZoneBase zónu.

Metody

CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Vytvoří objekt stylu, který poskytuje atributy stylu pro každý EditorPart ovládací prvek vykreslený objektem EditorPartChrome .

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
PerformPreRender()

Provádí úlohy, které je potřeba provést před vykreslováním EditorPart ovládacích prvků.

RenderEditorPart(HtmlTextWriter, EditorPart)

Vykreslí úplný EditorPart ovládací prvek se všemi jeho oddíly.

RenderPartContents(HtmlTextWriter, EditorPart)

Vykreslí hlavní oblast EditorPart obsahu ovládacího prvku s výjimkou záhlaví a zápatí.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro