diff --git a/GisDevelop_Exp/MainWindow.xaml b/GisDevelop_Exp/MainWindow.xaml
index a93d6b3..191babe 100644
--- a/GisDevelop_Exp/MainWindow.xaml
+++ b/GisDevelop_Exp/MainWindow.xaml
@@ -38,7 +38,7 @@
-
+
diff --git a/GisDevelop_Exp/MainWindow.xaml.cs b/GisDevelop_Exp/MainWindow.xaml.cs
index a6f3f6e..66c1c8b 100644
--- a/GisDevelop_Exp/MainWindow.xaml.cs
+++ b/GisDevelop_Exp/MainWindow.xaml.cs
@@ -24,6 +24,7 @@ using Esri.ArcGISRuntime.UI.Controls;
using Color = System.Drawing.Color;
using Geometry = Esri.ArcGISRuntime.Geometry.Geometry;
using Polygon = Esri.ArcGISRuntime.Geometry.Polygon;
+using Polyline = Esri.ArcGISRuntime.Geometry.Polyline;
enum CURRENTOPERATION
{
@@ -668,6 +669,23 @@ namespace GisDevelop_Exp
Graphic gPT = new Graphic(location, pointSymbol);
MainMapView.GraphicsOverlays[0].Graphics.Add(gPT);
}
+ else if (m_CurOper == CURRENTOPERATION.DrawLine)
+ {
+ linePoints.Add(location);
+ if (linePoints.Count > 1)
+ {
+ if (linesList.Count > 0)
+ {
+ Graphic curGraphic = linesList[linesList.Count - 1];
+ MainMapView.GraphicsOverlays[0].Graphics.Remove(curGraphic);
+ linesList.Remove(curGraphic);
+ }
+ Polyline line = new Polyline(linePoints);
+ Graphic lineGraphic = new Graphic(line, lineSymbol);
+ MainMapView.GraphicsOverlays[0].Graphics.Add(lineGraphic);
+ linesList.Add(lineGraphic);
+ }
+ }
}
private void Menu_Layers_Options_OnClick(object sender, RoutedEventArgs e)
@@ -682,11 +700,17 @@ namespace GisDevelop_Exp
private void Menu_Point_Draw_Line_OnClick(object sender, RoutedEventArgs e)
{
m_CurOper = CURRENTOPERATION.DrawLine;
+ linePoints.Clear();
}
private void Menu_Point_Draw_Polygon_OnClick(object sender, RoutedEventArgs e)
{
m_CurOper = CURRENTOPERATION.DrawPolygon;
}
+
+ private void MainMapView_OnMouseRightButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ m_CurOper = CURRENTOPERATION.NullOpe;
+ }
}
}
\ No newline at end of file
diff --git a/GisDevelop_Exp/OptionsWindow.xaml b/GisDevelop_Exp/OptionsWindow.xaml
index 2da5c67..b96e1a0 100644
--- a/GisDevelop_Exp/OptionsWindow.xaml
+++ b/GisDevelop_Exp/OptionsWindow.xaml
@@ -34,9 +34,10 @@
-
+
-
+
+
@@ -44,13 +45,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/GisDevelop_Exp/OptionsWindow.xaml.cs b/GisDevelop_Exp/OptionsWindow.xaml.cs
index 07d1bd1..e8bb20c 100644
--- a/GisDevelop_Exp/OptionsWindow.xaml.cs
+++ b/GisDevelop_Exp/OptionsWindow.xaml.cs
@@ -188,6 +188,9 @@ namespace GisDevelop_Exp
private void Btn_Point_Confirm_OnClick(object sender, RoutedEventArgs e)
{
+ PointSymbol.Color = pointColor;
+ PointSymbol.Style = pointStyle;
+ PointSymbol.Size = pointSize;
this.DialogResult = true;
}
@@ -204,5 +207,97 @@ namespace GisDevelop_Exp
{
this.DialogResult = false;
}
+
+ private void FrameworkElement_OnLoaded(object sender, RoutedEventArgs e)
+ {
+ System.Windows.Media.Color color = System.Windows.Media.Color.FromArgb(lineColor.A, lineColor.R, lineColor.G, lineColor.B);
+ Label_Line_Color.Background = new SolidColorBrush(color);
+ Slider_Line_Width.Value = Convert.ToInt32(lineSymbol.Width);
+ switch (lineStyle)
+ {
+ case SimpleLineSymbolStyle.Solid:
+ ComboBox_Line_Style.SelectedIndex = 0;
+ break;
+ case SimpleLineSymbolStyle.Dash:
+ ComboBox_Line_Style.SelectedIndex = 1;
+ break;
+ case SimpleLineSymbolStyle.Dot:
+ ComboBox_Line_Style.SelectedIndex = 2;
+ break;
+ case SimpleLineSymbolStyle.DashDot:
+ ComboBox_Line_Style.SelectedIndex = 3;
+ break;
+ case SimpleLineSymbolStyle.DashDotDot:
+ ComboBox_Line_Style.SelectedIndex = 4;
+ break;
+ case SimpleLineSymbolStyle.Null:
+ ComboBox_Line_Style.SelectedIndex = 0;
+ break;
+ }
+ }
+
+ private void Slider_Line_Width_OnValueChanged(object sender, RoutedPropertyChangedEventArgs e)
+ {
+ Label_Line_Width.Content="宽度:"+e.NewValue.ToString();
+ lineSize = e.NewValue;
+ }
+
+ private void UIElement_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+ {
+ System.Windows.Forms.ColorDialog colorDialog = new System.Windows.Forms.ColorDialog();
+ SolidColorBrush colorBrush = (SolidColorBrush)Label_Line_Color.Background;
+ colorDialog.Color = System.Drawing.Color.FromArgb(colorBrush.Color.A, colorBrush.Color.R, colorBrush.Color.G, colorBrush.Color.B);
+ if (colorDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ lineColor = colorDialog.Color;
+ System.Windows.Media.Color color = System.Windows.Media.Color.FromArgb(pointColor.A, pointColor.R, pointColor.G, pointColor.B);
+ Label_Line_Color.Background = new SolidColorBrush(color);
+ }
+ }
+
+ private void Btn_Line_Confirm_OnClick(object sender, RoutedEventArgs e)
+ {
+ LineSymbol.Style = lineStyle;
+ LineSymbol.Color = lineColor;
+ LineSymbol.Width = lineSize;
+ this.DialogResult = true;
+ }
+
+ private void Btn_Line_Apply_OnClick(object sender, RoutedEventArgs e)
+ {
+ LineSymbol.Style = lineStyle;
+ LineSymbol.Color = lineColor;
+ LineSymbol.Width = lineSize;
+ }
+
+ private void Btn_Line_Cancel_OnClick(object sender, RoutedEventArgs e)
+ {
+ this.DialogResult = false;
+ }
+
+ private void ComboBox_Line_Style_OnSelected(object sender, RoutedEventArgs e)
+ {
+ switch (ComboBox_Line_Style.SelectedIndex)
+ {
+ case 0:
+ lineStyle = SimpleLineSymbolStyle.Solid;
+ break;
+ case 1:
+ lineStyle = SimpleLineSymbolStyle.Dash;
+ break;
+ case 2:
+ lineStyle = SimpleLineSymbolStyle.Dot;
+ break;
+ case 3:
+ lineStyle = SimpleLineSymbolStyle.DashDot;
+ break;
+ case 4:
+ lineStyle = SimpleLineSymbolStyle.DashDotDot;
+ break;
+ case 5:
+ lineStyle = SimpleLineSymbolStyle.Null;
+ break;
+ }
+ }
}
}