Source/TextMarkup/ContainerElement.cs

(开头部分) 3KB

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

using System;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;

#if AdvTree
namespace DevComponents.Tree.TextMarkup
#elif DOTNETBAR
using DevComponents.UI.ContentManager;
namespace DevComponents.DotNetBar.TextMarkup
#endif
{
    internal class ContainerElement : MarkupElement
    {
        #region Private Variables
        private SerialContentLayoutManager m_Layout = null;
        private MarkupLayoutManager m_MarkupLayout = null;
        #endregion

        #region Internal Implementation
        public override void Measure(Size availableSize, MarkupDrawContext d)
        {
            ArrangeInternal(new Rectangle(Point.Empty, availableSize), d);
        }

        protected virtual SerialContentLayoutManager GetLayoutManager(bool mutliLine)
        {
            if (m_Layout == null)
            {
                m_Layout = new SerialContentLayoutManager();
                m_Layout.MultiLine = mutliLine;
                m_Layout.ContentVerticalAlignment = eContentVerticalAlignment.Top;
                m_Layout.BlockLineAlignment = eContentVerticalAlignment.Top;
                m_Layout.BlockSpacing = 0;
            }

            m_Layout.EvenHeight = true;
            return m_Layout;
        }

        private MarkupLayoutManager GetMarkupLayout()
        {
            if (m_MarkupLayout == null)
            {
                m_MarkupLayout = new MarkupLayoutManager();
            }
            return m_MarkupLayout;
        }

        public override void Render(MarkupDrawContext d)
        {
            Point offset = this.GetContainerOffset();
            d.Offset.Offset(offset.X, offset.Y);

            try
            {
                foreach (MarkupElement e in this.Elements)
                {
                    e.Render(d);
                }
后面还有 43 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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