コード例 #1
0
        /// <summary>
        /// Generates labels with specified positions
        /// </summary>
        private void btnOk_Click(object sender, EventArgs e)
        {
            // callback and wait cursor
            Enabled = false;
            Cursor  = Cursors.WaitCursor;

            var lb          = _shapefile.Labels;
            var positioning = get_LabelPositioning();

            lb.Style.Orientation = (LabelOrientation)cboLineOrientation.SelectedIndex;

            try
            {
                // generation
                _shapefile.GenerateEmptyLabels(positioning, !chkLabelEveryPart.Checked);
                _shapefile.Labels.SavingMode = PersistenceType.XmlOverwrite;  // .lbl file should be updated

                if (_shapefile.PointOrMultiPoint)
                {
                    if (optAlignBottomCenter.Checked)
                    {
                        _alignment = LabelAlignment.BottomCenter;
                    }
                    if (optAlignBottomLeft.Checked)
                    {
                        _alignment = LabelAlignment.BottomLeft;
                    }
                    if (optAlignBottomRight.Checked)
                    {
                        _alignment = LabelAlignment.BottomRight;
                    }
                    if (optAlignCenter.Checked)
                    {
                        _alignment = LabelAlignment.Center;
                    }
                    if (optAlignCenterLeft.Checked)
                    {
                        _alignment = LabelAlignment.CenterLeft;
                    }
                    if (optAlignCenterRight.Checked)
                    {
                        _alignment = LabelAlignment.CenterRight;
                    }
                    if (optAlignTopCenter.Checked)
                    {
                        _alignment = LabelAlignment.TopCenter;
                    }
                    if (optAlignTopLeft.Checked)
                    {
                        _alignment = LabelAlignment.TopLeft;
                    }
                    if (optAlignTopRight.Checked)
                    {
                        _alignment = LabelAlignment.TopRight;
                    }
                }

                // updating references to categories
                //if (lb.NumCategories > 0)
                //{
                //    for (int i = 0; i < lb.Count; i++)
                //    {
                //        MapWinGIS.Label label = lb.get_Label(i, 0);
                //        label.Category = m_shapefile.get_ShapeCategory(i);
                //    }
                //}
            }
            finally
            {
                Enabled = true;
                Cursor  = Cursors.Default;
            }
        }