using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Reflection;
using System.IO;
using Mesnac.Controls.Base;

namespace Mesnac.Controls.Default
{
    [ToolboxBitmap(typeof(TopPanel), "Resources.TopPanel.png")]
    public partial class TopPanel : Panel
    {
        #region 字段定义

        protected Assembly _assembly = Assembly.GetExecutingAssembly();
        protected Stream _imageStream;
        private Label systemName;
        private string _topText = string.Empty; //系统名称
        private int _titleSize; //系统名称字号
        private int _titleXValue;   //系统名称X坐标
        private int _titleYValue;   //系统名称Y坐标

        #endregion

        #region 构造方法

        public TopPanel()
        {
            InitializeComponent();
            //加载设置背景图
            this.Size = new Size(1920, 78);
            _imageStream = _assembly.GetManifestResourceStream("Mesnac.Controls.Default.Resources.TopPanel.png");
            this.BackgroundImage = Image.FromStream(_imageStream);
            this.BackgroundImageLayout = ImageLayout.Stretch;
            this.SizeChanged += new System.EventHandler(this.TopPanelSizeChanged);  //大小改变事件

            //创建设置Label
            systemName = new Label();
            this.Controls.Add(systemName);
            systemName.AutoSize = true;
            systemName.FlatStyle = System.Windows.Forms.FlatStyle.Flat;   //显示样式
            systemName.Font = new System.Drawing.Font("黑体", 24, FontStyle.Bold); //设置字体
            systemName.TextAlign = ContentAlignment.MiddleCenter; //文字对齐
            systemName.ForeColor = Color.White; //文字颜色
            systemName.Location = new Point((this.Width - systemName.Width) / 2,(this.Height - systemName.Height) / 2);
            systemName.SizeChanged += new System.EventHandler(systemNameSizeChanged);  //大小改变事件
            //systemName.Text = "测试一下";
        }

        public TopPanel(IContainer container)
        {
            container.Add(this);

            InitializeComponent();
        }

        #endregion

        #region 属性定义

        public string TopText
        {
            get
            {
                return _topText;
            }
            set
            {
                _topText = value;
                systemName.Text = value;
            }
        }

        public int TitleSize
        {
            get 
            { 
                return _titleSize; 
            }
            set 
            { 
                _titleSize = value;
                //systemName.Font = new System.Drawing.Font("黑体", value, FontStyle.Bold); //设置字体
            }
        }


        public int TitleXValue
        {
            get 
            { 
                return _titleXValue; 
            }
            set 
            { 
                _titleXValue = value;
                systemName.Location = new Point(value, systemName.Location.Y);
            }
        }

        public int TitleYValue
        {
            get 
            { 
                return _titleYValue; 
            }
            set 
            { 
                _titleYValue = value;
                systemName.Location = new Point(systemName.Location.X, value);
            }
        }

        #endregion

        #region 事件处理

        private void TopPanelSizeChanged(object sender, EventArgs e)
        {
            systemName.Location = new Point((this.Width - systemName.Width) / 2, (this.Height - systemName.Height) / 2);
        }

        private void systemNameSizeChanged(object sender, EventArgs e)
        {
            systemName.Location = new Point((this.Width - systemName.Width) / 2, (this.Height - systemName.Height) / 2);
        }

        #endregion

    }
}