예제 #1
0
 void backendRender(object sender, RenderEventArgs e)
 {
     OnRender(e);
 }
예제 #2
0
        public virtual void OnRender(RenderEventArgs e)
        {
            if (themerdata == null)
            {
                Themer.InitControl(this);

                if (string.IsNullOrEmpty(this.style))
                {
                    string[] styles = Themer.GetStyles(this);

                    if (styles.Length > 0)
                    {
                        bool set = false;

                        foreach (string style in styles)
                        {
                            if (style.ToLower() == "default")
                            {
                                this.Style = style;
                                set = true;
                            }
                        }

                        if (!set)
                            this.Style = styles[0];
                    }
                }
            }

            e.Graphics.Save();

            try
            {
                this.renderLocation.HandleRel();

                if (display != DisplayMode.Flow)
                    e.Graphics.Translate(this.renderLocation.RealL, this.renderLocation.RealT);

                if (this.visible)
                {
                    if (this.Render != null)
                        this.Render(this, e);
                    else
                        Themer.RenderControl(this, e.Graphics);
                }

                this.Path.Apply(e.Graphics);
                e.Graphics.Clip();

                foreach (Control child in children)
                    child.OnRender(e);
            }
            finally
            {
                e.Graphics.Restore();
            }
        }