コード例 #1
0
ファイル: EditorWindow.cs プロジェクト: Tokter/TokED
 private void Inspectors_ListChanged(object sender, ListChangedEventArgs e)
 {
     pContent.Controls.Clear();
     Inspector ins;
     for (int i = _model.Inspectors.Count - 1; i >= 0; i--)
     {
         ins = _model.Inspectors[i];
         var expander = new Expander();
         expander.Dock = DockStyle.Top;
         Image icon = null;
         if (ins.ExportName != null)
         {
             var iconName = Inspector.IconName(ins.ExportName);
             if (iconName != null) icon = imageList.Images[iconName];
         }
         ExpanderHelper.CreateLabelHeader(expander, ins.Tag.ToString(), SystemColors.ActiveBorder, imageList.Images["Collapse"], imageList.Images["Expand"], icon);
         ins.Dock = DockStyle.Top;
         expander.Content = ins;
         pContent.Controls.Add(expander);
     }
 }
コード例 #2
0
ファイル: Expander.cs プロジェクト: Tokter/TokED
        public static Label CreateLabelHeader(Expander expander, string text, Color backColor, Image collapsedImage = null, Image expandedImage = null, Image icon = null, int height = 25, Font font = null)
        {
            var panel = new Panel();
            panel.Height = height;

            var headerLabel = new Label();
            headerLabel.Text = text;
            headerLabel.AutoSize = false;
            if (font != null)
                headerLabel.Font = font;
            headerLabel.TextAlign = ContentAlignment.MiddleLeft;
            if (collapsedImage != null && expandedImage != null)
            {
                headerLabel.Image = collapsedImage;
                headerLabel.ImageAlign = ContentAlignment.MiddleRight;
            }
            headerLabel.BackColor = backColor;
            headerLabel.Dock = DockStyle.Fill;
            panel.Controls.Add(headerLabel);

            if (icon != null)
            {
                var iconLabel = new Label();
                iconLabel.Dock = DockStyle.Left;
                iconLabel.Image = icon;
                iconLabel.Width = height;
                iconLabel.BackColor = backColor;
                iconLabel.ImageAlign = ContentAlignment.MiddleLeft;
                panel.Controls.Add(iconLabel);
            }

            if (collapsedImage != null && expandedImage != null)
            {
                expander.StateChanged += delegate { headerLabel.Image = expander.Expanded ? collapsedImage : expandedImage; };
            }
            headerLabel.Click += delegate { expander.Toggle(); };

            expander.Header = panel;

            return headerLabel;
        }