Wilco.SyntaxHighlighting/Web/SyntaxHighlighterTemplates.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

namespace Wilco.Web.SyntaxHighlighting
{
    public partial class SyntaxHighlighter : WebControl
    {
        private class DefaultCodeLayoutTemplate : Control, ITemplate
        {
            public DefaultCodeLayoutTemplate()
            {
                //
            }

            public void InstantiateIn(Control c)
            {
                SourceHeaderItem container = (SourceHeaderItem)c;

                if (c.Page != null && c.Page.Header != null && c.Page.Items["shl_ln"] == null)
                {
                    HtmlGenericControl lineNumberStyle = new HtmlGenericControl("style");
                    lineNumberStyle.Attributes.Add("type", "text/css");
                    lineNumberStyle.InnerHtml = ".shl_ln { border-right: 1px solid #000; padding-right: 2px; }";
                    c.Page.Header.Controls.Add(lineNumberStyle);
                    c.Page.Items["shl_ln"] = new object();
                }

                HtmlTable root = new HtmlTable();
                root.Style.Add(HtmlTextWriterStyle.Width, "100%");
                container.Controls.Add(root);

                HtmlTableRow headerRow = new HtmlTableRow();
                root.Rows.Add(headerRow);

                HtmlTableCell headerCell = new HtmlTableCell();
                headerCell.ColSpan = 2;
                headerCell.Style.Add(HtmlTextWriterStyle.FontWeight, "bold");
                headerCell.InnerText = container.Language;
                headerRow.Cells.Add(headerCell);

                HtmlTableRow bodyRow = new HtmlTableRow();
                root.Rows.Add(bodyRow);

                HtmlTableCell lineNumberCell = new HtmlTableCell();
                lineNumberCell.Style.Add(HtmlTextWriterStyle.TextAlign, "right");
                lineNumberCell.Style.Add(HtmlTextWriterStyle.VerticalAlign, "top");
                lineNumberCell.Style.Add(HtmlTextWriterStyle.Width, "1%");
                bodyRow.Cells.Add(lineNumberCell);

                HtmlGenericControl lineNumberPre = new HtmlGenericControl("pre");
                lineNumberCell.Controls.Add(lineNumberPre);

                LineNumberPlaceHolder lineNumberPH = new LineNumberPlaceHolder();
                lineNumberPre.Controls.Add(lineNumberPH);

                HtmlTableCell sourceLineCell = new HtmlTableCell();
                sourceLineCell.Style.Add(HtmlTextWriterStyle.VerticalAlign, "top");
                sourceLineCell.Style.Add(HtmlTextWriterStyle.Width, "99%");
后面还有 45 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。