예제 #1
0
        public FillProps(Draws drw)
        {
            //Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
            InitializeComponent();
            // -------------------------------------------------------------------
            cbColor.Items.Clear();
            cbColor.Items.AddRange(DrawUtils.GetAllColorNames()); // получение всех имён доступных цветов
            cbColor.Items.Add("Выбор цвета...");                  // добавление пункта выбора цвета
            cbColor.Text = DrawUtils.GetColorNameFromIndex(LastColorIndex);
            // -------------------------------------------------------------------
            cbColorPattern.Items.Clear();
            cbColorPattern.Items.AddRange(DrawUtils.GetAllColorNames()); // получение всех имён доступных цветов
            cbColorPattern.Items.Add("Выбор цвета...");                  // добавление пункта выбора цвета
            cbColorPattern.Text = DrawUtils.GetColorNameFromIndex(LastPatternColorIndex);
            // -------------------------------------------------------------------
            cbPattern.Items.Clear();
            cbPattern.Items.AddRange(DrawUtils.GetAllPatternNames()); // получение всех имён доступных паттернов
            cbPattern.SelectedIndex = 1;
            // -------------------------------------------------------------------
            if (drw != null)
            {
                fill.Assign(drw.Fill);
            }
            // -------------------------------
            int Index = DrawUtils.ColorToIndex(fill.Color);

            if (Index < 0)
            {
                DrawUtils.AddCustomColor(fill.Color);
                cbColor.Items.Insert(cbColor.Items.Count - 1, "Мой цвет");
                Index = cbColor.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColor.SelectedIndex = Index;
            }
            // -------------------------------
            Index = DrawUtils.ColorToIndex(fill.PatternColor);
            if (Index < 0)
            {
                DrawUtils.AddCustomColor(fill.PatternColor);
                cbColorPattern.Items.Insert(cbColorPattern.Items.Count - 1, "Мой цвет");
                Index = cbColorPattern.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColorPattern.SelectedIndex = Index;
            }
            // -------------------------------
            tbTrasparent.Value = 255 - fill.Alpha;
            lbTrasparent.Text  = String.Format(CultureInfo.InvariantCulture, "{0}",
                                               (int)(tbTrasparent.Value / 255.0 * 100.0)) +
                                 " %";
            // -------------------------------
            cbPattern.SelectedIndex = fill.PatternIndex;
            cbColorPattern.Enabled  = (cbPattern.SelectedIndex > 1);
        }
예제 #2
0
        private void cbColor_DrawItem(object sender, DrawItemEventArgs e)
        {
            ComboBox cb         = (ComboBox)sender;
            Graphics g          = e.Graphics;
            Color    brushColor = DrawUtils.ColorFromIndex(e.Index);

            // Draw the background of the item.
            e.DrawBackground();
            Rectangle largerect = new Rectangle(e.Bounds.X, e.Bounds.Top, e.Bounds.Width - 1, e.Bounds.Height - 1);
            Rectangle colorrect = new Rectangle(4, e.Bounds.Top + 2, e.Bounds.Height - 2, e.Bounds.Height - 5);

            if (DrawUtils.IsNamedColorIndex(e.Index)) // отрисовка рамки цвета пунктов основеых цветов
            {
                using (SolidBrush brush = new SolidBrush(brushColor))
                {
                    g.FillRectangle(brush, colorrect);
                }
                g.DrawRectangle(Pens.Black, colorrect);
            }
            RectangleF textRect = new RectangleF(e.Bounds.X + colorrect.Width + 5, e.Bounds.Y + 1,
                                                 e.Bounds.Width, e.Bounds.Height);

            using (SolidBrush textColor = new SolidBrush(e.ForeColor))
            {
                if (DrawUtils.IsNamedColorIndex(e.Index))
                {// отрисовка пунктов основных цветов
                    g.DrawString(DrawUtils.GetColorNameFromIndex(e.Index), cb.Font, textColor, textRect);
                }
                else
                if (DrawUtils.IsCustomColorIndex(e.Index))     // отрисовка пунктов дополнительных цветов
                {
                    using (SolidBrush brush = new SolidBrush(brushColor))
                    {
                        g.FillRectangle(brush, largerect);
                    }
                    using (Pen pen = new Pen(cb.BackColor))
                    {
                        g.DrawRectangle(pen, largerect);
                    }
                }
                else     // отрисовка последнего пункта: Выбор цвета...
                {
                    g.DrawString(cb.Items[e.Index].ToString(), cb.Font, textColor, largerect);
                }
            }
            // Draw the focus rectangle if the mouse hovers over an item.
            e.DrawFocusRectangle();
        }
예제 #3
0
        public StrokeProps(Draws drw)
        {
            InitializeComponent();
            // -------------------------------------------------------------------
            cbPattern.Items.Clear();
            cbPattern.Items.AddRange(DrawUtils.GetPenPatternNames()); // получение всех имён доступных типов линий
            cbPattern.SelectedIndex = 1;
            // -------------------------------------------------------------------
            cbWidth.Items.Clear();
            for (int i = 1; i < 61; i++)
            {
                cbWidth.Items.Add(i.ToString());
            }
            // -------------------------------------------------------------------
            cbColor.Items.Clear();
            cbColor.Items.AddRange(DrawUtils.GetAllColorNames()); // получение всех имён доступных цветов
            cbColor.Items.Add("Выбор цвета...");                  // добавление пункта выбора цвета
            cbColor.Text = DrawUtils.GetColorNameFromIndex(LastColorIndex);
            // -------------------------------------------------------------------
            stroke.Assign(drw.Stroke);
            // -------------------------------
            int Index = DrawUtils.ColorToIndex(stroke.Color);

            if (Index < 0)
            {
                DrawUtils.AddCustomColor(stroke.Color);
                cbColor.Items.Insert(cbColor.Items.Count - 1, "Мой цвет");
                Index = cbColor.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColor.SelectedIndex = Index;
            }
            // -------------------------------
            tbTrasparent.Value = 255 - stroke.Alpha;
            lbTrasparent.Text  = String.Format("{0} %", (int)(tbTrasparent.Value / 255.0 * 100.0));
            // -------------------------------
            cbWidth.SelectedIndex = (int)stroke.Width - 1;
            // -------------------------------
            if (stroke.DashStyle == DashStyle.Custom)
            {
                cbPattern.SelectedIndex = 0;
            }
            else
            {
                cbPattern.SelectedIndex = (int)stroke.DashStyle + 1;
            }
            // -------------------------------------------------------------------
            cbLineJoin.Items.Clear();
            // получение всех имён доступных типов соединений линий
            cbLineJoin.Items.AddRange(DrawUtils.GetLineJoinNames());
            cbLineJoin.SelectedIndex = (int)stroke.LineJoin;
            // -------------------------------------------------------------------
            cbStartCap.Items.Clear();
            // получение всех имён доступных типов окончаний линий
            cbStartCap.Items.AddRange(DrawUtils.GetLineCapNames());
            cbStartCap.SelectedIndex = (int)stroke.StartCap;
            // -------------------------------------------------------------------
            cbEndCap.Items.Clear();
            // получение всех имён доступных типов окончаний линий
            cbEndCap.Items.AddRange(DrawUtils.GetLineCapNames());
            cbEndCap.SelectedIndex = (int)stroke.EndCap;
        }
예제 #4
0
        public TextProps(Draws drw)
        {
            InitializeComponent();
            FontFamily[] ffam = FontFamily.Families;
            cbFont.Items.Clear();
            foreach (FontFamily ff in ffam)
            {
                cbFont.Items.Add(ff.Name);
            }
            // -------------------------------------------------------------------
            cbFont.SelectedIndex = cbFont.Items.IndexOf(cbFont.Text);
            cbColor.Items.Clear();
            // получение всех имён доступных цветов
            cbColor.Items.AddRange(DrawUtils.GetAllColorNames());
            // добавление пункта выбора цвета
            cbColor.Items.Add("Выбор цвета...");
            cbColor.Text = DrawUtils.GetColorNameFromIndex(LastColorIndex);
            // -------------------------------------------------------------------
            text.Assign(drw.Text);
            // -------------------------------
            int Index = DrawUtils.ColorToIndex(text.Color);

            if (Index < 0)
            {
                DrawUtils.AddCustomColor(text.Color);
                cbColor.Items.Insert(cbColor.Items.Count - 1, "Мой цвет");
                Index = cbColor.Items.Count - 2;
            }
            if (Index >= 0)
            {
                cbColor.SelectedIndex = Index;
            }
            // -------------------------------
            tbTrasparent.Value = 255 - text.Alpha;
            lbTrasparent.Text  = String.Format("{0} %",
                                               (int)(tbTrasparent.Value / 255.0 * 100.0));
            // -------------------------------
            cbFont.Text = text.FontName;
            // -------------------------------
            cbSize.Text = text.FontSize.ToString();
            // -------------------------------
            if (text.Bold && text.Italic)
            {
                cbStyle.SelectedIndex = 3;
            }
            else if (text.Bold)
            {
                cbStyle.SelectedIndex = 2;
            }
            else if (text.Italic)
            {
                cbStyle.SelectedIndex = 1;
            }
            else
            {
                cbStyle.SelectedIndex = 0;
            }
            // -------------------------------
            cbUnderline.Checked = text.Underline;
            // -------------------------------
            cbSrikeout.Checked = text.Strikeout;
            // -------------------------------
            cbHorizontal.SelectedIndex = (int)(text.Alignment);
            cbVertical.SelectedIndex   = (int)(text.LineAlignment);
            cbVerticalText.Checked     = text.Vertical;
        }