Source/TextMarkup/ImageElement.cs

(开头部分) 5KB

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

using System;
using System.Text;
using System.Drawing;
using System.Xml;
using System.Reflection;

namespace DevComponents.DotNetBar.TextMarkup
{
    internal class ImageElement : MarkupElement
    {
        #region Private Variables
        private Size m_ImageSize = Size.Empty;
        private string m_ImageSource = "";
        private Image m_Image = null;
        #endregion

        #region Internal Implementation
        public override void Measure(System.Drawing.Size availableSize, MarkupDrawContext d)
        {
            if (!m_ImageSize.IsEmpty)
                this.Bounds = new Rectangle(Point.Empty, m_ImageSize);
            else if (m_ImageSource.Length == 0)
                this.Bounds = Rectangle.Empty;
            else
            {
                Image img = this.GetImage();
                if (img != null)
                    this.Bounds = new Rectangle(Point.Empty, img.Size);
                else
                    this.Bounds = new Rectangle(Point.Empty, new Size(16,16));
            }
        }

        public override bool IsBlockElement
        {
            get
            {
                return false;
            }
        }

        private Image GetImage()
        {
            if (m_Image != null) return m_Image;
            Assembly a = null;

            // Load from format: ClassLibrary1/ClassLibrary1.MyImage.png or ClassLibrary1/global::ClassLibrary1.Resources.MyImage
            if (m_ImageSource.IndexOf('/') >= 0)
            {
                string[] parts = m_ImageSource.Split('/');
                a = Assembly.Load(parts[0]);
                string ResourceName = parts[1];
                if (a != null)
                {
                    m_Image = LoadImageGlobalResource(parts[1], a);
                    if (m_Image == null)
                        m_Image = LoadImageResource(parts[1], a);

                    if (m_Image != null) return m_Image;
                }
后面还有 118 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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