Пример #1
0
        private static void LoadMultiLineColumn(string resourceType, string[] propNames, XmlNode node)
        {
            int row    = XmlTools.GetRequiredIntAttribute(node, "row");
            int endRow = XmlTools.GetIntAttribute(node, "endRow", -1);

            if (endRow == -1)
            {
                endRow = row;
            }
            int startX = XmlTools.GetRequiredIntAttribute(node, "startX");
            int width  = XmlTools.GetRequiredIntAttribute(node, "width");

            MultiLineColumnFlags flags = 0;

            string anchor = XmlTools.GetRequiredAttribute(node, "anchor");

            switch (anchor)
            {
            case "left":  flags |= MultiLineColumnFlags.AnchorLeft; break;

            case "right": flags |= MultiLineColumnFlags.AnchorRight; break;

            case "both":  flags |= MultiLineColumnFlags.AnchorLeft | MultiLineColumnFlags.AnchorRight; break;

            default:
                throw new Exception("Invalid column anchor '" + anchor + "'");
            }

            if (XmlTools.GetIntAttribute(node, "hideIfNoProp", 0) == 1)
            {
                flags |= MultiLineColumnFlags.HideIfNoProp;
            }

            Color color = SystemColors.ControlText;
            int   r     = XmlTools.GetIntAttribute(node, "r", -1);

            if (r != -1)
            {
                int g = XmlTools.GetRequiredIntAttribute(node, "g");
                int b = XmlTools.GetRequiredIntAttribute(node, "b");
                color = Color.FromArgb(r, g, b);
            }

            HorizontalAlignment textAlign = HorizontalAlignment.Left;

            if (node.Attributes ["align"] != null)
            {
                switch (node.Attributes ["align"].Value)
                {
                case "left":   textAlign = HorizontalAlignment.Left; break;

                case "center": textAlign = HorizontalAlignment.Center; break;

                case "right":  textAlign = HorizontalAlignment.Right; break;

                default:
                    throw new Exception("Invalid column alignment '" + anchor + "'");
                }
            }

            DisplayColumnManager colManager = Core.DisplayColumnManager as DisplayColumnManager;

            Core.DisplayColumnManager.RegisterMultiLineColumn(resourceType,
                                                              colManager.PropNamesToIDs(propNames, true), row, endRow, startX, width, flags, color, textAlign);
        }