/// <summary> /// 应用所选的颜色方案 /// </summary> private void ApplyColorScheme2Categories() { if (_shapefile.Categories.Count > 0) { MapWinGIS.ColorScheme scheme = null; if (icbCategories.SelectedIndex >= 0) { ColorBlend blend = (ColorBlend)icbCategories.ColorSchemes.List[icbCategories.SelectedIndex]; scheme = ColorSchemes.ColorBlend2ColorScheme(blend); // saving the settings //MWLite.Symbology.Layer layer = Globals.Legend.Layers.ItemByHandle(_layerHandle); //_settings.CategoriesColorScheme = blend; } else { return; } if (chkRandomColors.Checked) { _shapefile.Categories.ApplyColorScheme(MapWinGIS.tkColorSchemeType.ctSchemeRandom, scheme); } else { _shapefile.Categories.ApplyColorScheme(MapWinGIS.tkColorSchemeType.ctSchemeGraduated, scheme); } MapWinGIS.ShapefileCategories categories = _shapefile.Categories; //绘制catagorise选项 if (chkSetGradient.Checked) { for (int i = 0; i < categories.Count; i++) { ShapeDrawingOptions options = categories.get_Item(i).DrawingOptions; options.SetGradientFill(options.FillColor, 75); options.FillType = tkFillType.ftGradient; } } else { for (int i = 0; i < categories.Count; i++) { ShapeDrawingOptions options = categories.get_Item(i).DrawingOptions; options.FillColor2 = options.FillColor; options.FillType = tkFillType.ftStandard; } } } }
public void SetGradient(Color color, byte range) { _style.SetGradientFill(ColorHelper.ColorToUInt(color), range); }
/// <summary> /// Generates shapefile categories according to specified options /// </summary> private void btnOk_Click(object sender, EventArgs e) { if (cboField.SelectedIndex < 0) { Globals.MessageBoxInformation("No field for generation was selected."); this.DialogResult = DialogResult.None; return; } int count; if (!Int32.TryParse(cboCategoriesCount.Text, out count)) { Globals.MessageBoxError("Number of categories isn't a valid interger."); return; } MapWinGIS.ShapefileCategories categories = _shapefile.Categories; int index = ((ComboItem)cboField.SelectedItem).RealIndex; categories.Generate(index, (MapWinGIS.tkClassificationType)cboClassificationType.SelectedIndex, count); categories.Caption = "Categories: " + _shapefile.get_Field(index).Name; if (chkUseVariableSize.Checked) { if (_shapefile.ShapefileType == ShpfileType.SHP_POINT || _shapefile.ShapefileType == ShpfileType.SHP_MULTIPOINT) { double step = (double)(udMaxSize.Value - udMinSize.Value) / ((double)categories.Count - 1); for (int i = 0; i < categories.Count; i++) { categories.get_Item(i).DrawingOptions.PointSize = (int)udMinSize.Value + Convert.ToInt32(i * step); } } else if (_shapefile.ShapefileType == ShpfileType.SHP_POLYLINE) { double step = (double)(udMaxSize.Value + udMinSize.Value) / (double)categories.Count; for (int i = 0; i < categories.Count; i++) { categories.get_Item(i).DrawingOptions.LineWidth = (int)udMinSize.Value + Convert.ToInt32(i * step); } } } MapWinGIS.ColorScheme scheme = null; if (icbColorScheme.SelectedIndex >= 0) { ColorBlend blend = (ColorBlend)icbColorScheme.ColorSchemes.List[icbColorScheme.SelectedIndex]; scheme = ColorSchemes.ColorBlend2ColorScheme(blend); } tkColorSchemeType type = chkRandomColors.Checked ? tkColorSchemeType.ctSchemeRandom : tkColorSchemeType.ctSchemeGraduated; _shapefile.Categories.ApplyColorScheme(type, scheme); if (chkSetGradient.Checked) { for (int i = 0; i < categories.Count; i++) { ShapeDrawingOptions options = categories.get_Item(i).DrawingOptions; options.SetGradientFill(options.FillColor, 75); options.FillType = tkFillType.ftGradient; } } _shapefile.Categories.ApplyExpressions(); SaveSettings(); }