using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using DAL; using System.Data; using System.Data.SqlClient; using System.Windows.Media.Animation; using ColorFont; using AGV_WPF.Services; namespace AGV_WPF { /// /// MarkManage.xaml 的交互逻辑 /// public partial class RouteManage : Page { public DAL.ZSql sql = new DAL.ZSql(); public int linenum = -1; public int id = -1; public bool IsIDModel = true; public bool IsbtnCopy = true; public SolidColorBrush IsVirtualMark = Brushes.Gray; public SolidColorBrush NotVirtualMark = Brushes.Yellow; public SolidColorBrush RouteColor = Brushes.Tomato; public double MarkDiameter = 4; Path path; PathGeometry animationPath; PathFigure pFigure; PolyLineSegment route; string strrouteworkline = null; public RouteManage() { InitializeComponent(); } /// /// 页面加载 /// /// /// private void Page_Loaded(object sender, RoutedEventArgs e) { IsVirtualMark = new SolidColorBrush(Properties.Settings.Default.MarkVirtualColor); NotVirtualMark = new SolidColorBrush(Properties.Settings.Default.MarkNotColor); MarkDiameter = Properties.Settings.Default.MarkDiameter; RouteColor = new SolidColorBrush(Properties.Settings.Default.RouteColor); EVirtualMark.Fill = IsVirtualMark; ENotVirtualMark.Fill = NotVirtualMark; RecRoute.Fill = RouteColor; // Create the animation path. path = new Path(); path.Stroke = RouteColor; path.StrokeThickness = 1; animationPath = new PathGeometry(); pFigure = new PathFigure(); route = new PolyLineSegment(); path.Data = animationPath; pFigure.Segments.Add(route); animationPath.Figures.Add(pFigure); MapInit(@"Image\background.png"); //修改日期:2013-12-1 //修改日期:2013-12-30 BindWorkLineCombox(); BindLineCombox(cbRoute_WorkLine.Text.Trim()); LoadAllMark(); } /// /// 加载电子地图背景图片 /// /// 电子地图图片位置 public void MapInit(string struri) { ImageBrush imageBrush = new ImageBrush(); imageBrush.ImageSource = new BitmapImage(new Uri(struri, UriKind.RelativeOrAbsolute)); imageBrush.Stretch = Stretch.Uniform; imageBrush.AlignmentX = AlignmentX.Left; canvas.Background = imageBrush; } /// /// 加载地标 /// private void LoadAllMark() { DAL.ZSql sql1 = new DAL.ZSql(); sql1.Open("select * from T_Mark"); //加载地图中地标 canvas.Children.Clear(); double x = 0, y = 0; for (int i = 0; i < sql1.Rows.Count; i++) { x = Convert.ToDouble(sql1.Rows[i]["XPos"]); y = Convert.ToDouble(sql1.Rows[i]["YPos"]); Ellipse markellipse = new Ellipse(); markellipse.Height = MarkDiameter; markellipse.Width = MarkDiameter; markellipse.ToolTip = sql1.Rows[i]["ID"].ToString() + "\r\nWorkLine:" + sql1.Rows[i]["WorkLine"].ToString() + " Mark:" + sql1.Rows[i]["Mark"]; Canvas.SetLeft(markellipse, x - MarkDiameter / 2); Canvas.SetTop(markellipse, y - MarkDiameter / 2); //设置虚拟点颜色 if (Convert.ToBoolean(sql1.Rows[i]["VirtualMark"])) { markellipse.Fill = IsVirtualMark; } else { markellipse.Fill = NotVirtualMark; Label marklable = new Label(); marklable.FontSize = 7; marklable.Foreground = Brushes.Black; //marklable.Content = sql1.Rows[i]["ID"].ToString();//地标ID marklable.Content = sql1.Rows[i]["Mark"].ToString();//地标号 Canvas.SetLeft(marklable, x - 10); Canvas.SetTop(marklable, y - 15); canvas.Children.Add(marklable); } canvas.Children.Add(markellipse); } sql1.Close(); } /// /// 加载数据表格 /// /// /// private void LoadDataGrid(string paraworkline, int paralinenum) { if (paralinenum > 0) { DAL.ZSql sql1 = new DAL.ZSql(); sql1.Open("select l.*,m.Mark,m.WorkLine,m.XPos,m.YPos from T_Line as l LEFT OUTER JOIN T_Mark as m ON l.MarkID = m.ID where l.MarkID IS NOT NULL and l.MarkOrder IS NOT NULL and l.LineNum=" + Convert.ToString(paralinenum) + " and WorkLine=" + paraworkline +" order by l.MarkOrder"); canvas.Children.Remove(path); if (sql1.Rows.Count>1) { route.Points.Clear(); for (int i = 0; i < sql1.Rows.Count; i++ ) { if(!string.IsNullOrEmpty(sql1.Rows[i]["XPos"].ToString()) && !string.IsNullOrEmpty(sql1.Rows[i]["YPos"].ToString())) { route.Points.Add(new Point(Convert.ToDouble(sql1.Rows[i]["XPos"]), Convert.ToDouble(sql1.Rows[i]["YPos"]))); } } if (route.Points.Count >= 2) { pFigure.StartPoint = route.Points[0]; canvas.Children.Add(path); } } dataGrid1.ItemsSource = sql1.m_table.DefaultView; sql1.Close(); linenum = paralinenum; } else { dataGrid1.ItemsSource = null; } } /// /// 线路号绑定 /// /// 生产区 private void BindLineCombox(string worklinenum) { if (!string.IsNullOrEmpty(worklinenum)) { DAL.ZSql sql1 = new DAL.ZSql(); sql1.Open("select DISTINCT LineNum from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where WorkLine=" + worklinenum + " order by LineNum"); cbRoute.ItemsSource = sql1.m_table.DefaultView; cbRoute.DisplayMemberPath = "LineNum"; cbRoute.SelectedValuePath = "LineNum"; sql1.Close(); } } //修改日期:2013-12-1 /// /// 生产区下拉框绑定 /// private void BindWorkLineCombox() { DAL.ZSql sql1 = new DAL.ZSql(); sql1.Open("Select DISTINCT WorkLine from T_Mark"); cbWorkLine.ItemsSource = sql1.m_table.DefaultView; cbWorkLine.DisplayMemberPath = "WorkLine"; cbWorkLine.SelectedValuePath = "WorkLine"; sql1.Close(); //修改日期:2013-12-30 DAL.ZSql sql2 = new DAL.ZSql(); sql2.Open("Select DISTINCT WorkLine from T_Mark"); cbRoute_WorkLine.ItemsSource = sql2.m_table.DefaultView; cbRoute_WorkLine.DisplayMemberPath = "WorkLine"; cbRoute_WorkLine.SelectedValuePath = "WorkLine"; sql2.Close(); } /// /// 表格选择不同行消息触发 /// /// /// private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e) { DataRowView selectItem = dataGrid1.SelectedItem as DataRowView; if (selectItem != null) { id = Convert.ToInt16(selectItem["ID"].ToString().Trim()); tbOrder.Text = selectItem["MarkOrder"].ToString().Trim(); tbMarkID.Text = selectItem["MarkID"].ToString().Trim(); tbDistance.Text = selectItem["Distance"].ToString().Trim(); cbWorkLine.Text = selectItem["WorkLine"].ToString().Trim(); tbMark.Text = selectItem["Mark"].ToString().Trim(); string a = selectItem["Parallel"].ToString().Trim(); string a1 = selectItem["Direction"].ToString().Trim(); if (a.ToLower() == "true") { comboBox1.Text = "1"; } else { comboBox1.Text = "0"; } if (a1.ToLower() == null||a1.ToLower() =="") { comboBox2.Text = "0"; } else { comboBox2.Text = a1; } //comboBox1.Text = selectItem["Parallel"].ToString().Trim(); } else { tbOrder.Text = ""; tbMarkID.Text = ""; tbDistance.Text = ""; tbMark.Text = ""; comboBox1.Text = "0"; } } /// /// 删除路线 /// /// /// private void DeleteAll_Click(object sender, RoutedEventArgs e) { strrouteworkline = cbRoute_WorkLine.Text.ToString().Trim(); string strRoute = cbRoute.Text.ToString().Trim(); string strDirection = comboBox2.Text.ToString().Trim(); if (string.IsNullOrEmpty(strRoute)) { MessageBox.Show("请输入要删除路线!"); cbRoute.Focus(); return; } sql.Open("select * from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strRoute + " and WorkLine=" + strrouteworkline); if (sql.Rows.Count <= 0) { MessageBox.Show("不存在此路线!"); return; } if (MessageBox.Show("确认要删除此路线?", "警告", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { sql.Open("delete T_Line from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strRoute + " and WorkLine=" + strrouteworkline +"and Direction="+strDirection); MessageBox.Show("删除线路成功!"); LoadAllMark(); cbRoute.Text = ""; tbOrder.Text = ""; tbMarkID.Text = ""; tbDistance.Text = ""; BindLineCombox(cbRoute_WorkLine.Text.Trim()); } sql.Close(); } /// /// 复制线路 /// /// /// private void CopyRoute_Click(object sender, RoutedEventArgs e) { this.tbOrder.Visibility = Visibility.Hidden; this.tbMarkID.Visibility = Visibility.Hidden; this.tbMark.Visibility = Visibility.Hidden; this.labelMark.Visibility = Visibility.Hidden; this.labelWorkLine.Visibility = Visibility.Hidden; this.cbWorkLine.Visibility = Visibility.Hidden; this.tbDistance.Visibility = Visibility.Hidden; this.labelOrder.Visibility = Visibility.Hidden; this.labelDistance.Visibility = Visibility.Hidden; this.labelMarkID.Visibility = Visibility.Hidden; this.btn_Shift.Visibility = Visibility.Hidden; this.labelNewRoute.Visibility = Visibility.Visible; this.tbNewRoute.Visibility = Visibility.Visible; this.CancelCopy.Visibility = Visibility.Visible; string strlinenum = cbRoute.Text.ToString().Trim(); string strnewroute = tbNewRoute.Text.ToString().Trim(); strrouteworkline = cbRoute_WorkLine.Text.ToString().Trim(); btnAdd.IsEnabled = false; ModifyRecord.IsEnabled = false; DeleteRecord.IsEnabled = false; if (string.IsNullOrEmpty(strlinenum)) { MessageBox.Show("对不起,请选择要复制的路线!"); this.cbRoute.Focus(); return; } if (string.IsNullOrEmpty(strnewroute)) { MessageBox.Show("对不起,请输入复制后新路线的编号!"); this.tbNewRoute.Focus(); return; } sql.Open("select * from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strlinenum + " and WorkLine=" + strrouteworkline); if (sql.Rows.Count < 1) { MessageBox.Show("您输入的复制线路不存在,请重新输入!"); this.cbRoute.Focus(); return; } sql.Open("select * from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strnewroute + " and WorkLine=" + strrouteworkline); if (sql.Rows.Count > 0) { MessageBox.Show("您输入的新线路编号已存在,请重新输入!"); this.tbNewRoute.Focus(); return; } sql.Open("insert into T_Line (LineNum,MarkID,MarkOrder,Distance,Parallel,Direction) select " + strnewroute + ",MarkID,MarkOrder,Distance,Parallel ,Direction from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strlinenum + " and WorkLine=" + strrouteworkline); MessageBox.Show("添加成功!"); this.tbOrder.Visibility = Visibility.Visible; this.tbMarkID.Visibility = Visibility.Visible; this.tbDistance.Visibility = Visibility.Visible; this.labelOrder.Visibility = Visibility.Visible; this.labelDistance.Visibility = Visibility.Visible; this.labelMarkID.Visibility = Visibility.Visible; this.btn_Shift.Visibility = Visibility.Visible; this.labelNewRoute.Visibility = Visibility.Hidden; this.tbNewRoute.Visibility = Visibility.Hidden; this.CancelCopy.Visibility = Visibility.Hidden; IsIDModel = true; btnAdd.IsEnabled = true; ModifyRecord.IsEnabled = true; DeleteRecord.IsEnabled = true; tbNewRoute.Text = ""; BindLineCombox(cbRoute_WorkLine.Text.Trim()); } /// /// 添加记录 /// /// /// private void btnAdd_Click(object sender, RoutedEventArgs e) { string strlinenum = cbRoute.Text.ToString().Trim(); string strorder = tbOrder.Text.ToString().Trim(); string strmarkid = tbMarkID.Text.ToString().Trim(); string strdistance = tbDistance.Text.ToString().Trim(); string strmark = tbMark.Text.ToString().Trim(); strrouteworkline = cbRoute_WorkLine.Text.ToString().Trim(); string strworkline = cbWorkLine.Text.ToString().Trim(); string strparallel = comboBox1.Text.ToString().Trim(); string strdirection = comboBox2.Text.ToString().Trim(); if (IsIDModel) { if (string.IsNullOrEmpty(strorder) || string.IsNullOrEmpty(strmarkid) || string.IsNullOrEmpty(strdistance) || string.IsNullOrEmpty(strrouteworkline) || string.IsNullOrEmpty(strlinenum)) { MessageBox.Show("对不起,请同时输入生产区、线路号、序号、地标ID号和距离!"); return; } sql.Open("select * from T_Mark where ID=" + strmarkid); if (sql.Rows.Count <= 0) { MessageBox.Show("输入的地标不存在!"); return; } } else { if (string.IsNullOrEmpty(strorder) || string.IsNullOrEmpty(strmark) || string.IsNullOrEmpty(strworkline) || string.IsNullOrEmpty(strdistance) || string.IsNullOrEmpty(strrouteworkline) || string.IsNullOrEmpty(strlinenum)) { MessageBox.Show("对不起,请同时输入生产区、线路号、序号、生产区、地标和距离!"); return; } sql.Open("select ID from T_Mark where WorkLine=" + strworkline + " and Mark=" + strmark); if (sql.rowcount < 1) { MessageBox.Show("输入的地标不存在!"); return; } strmarkid = sql.Rows[0]["ID"].ToString(); } sql.Open("select * from T_Mark where ID=" + strmarkid + " and WorkLine=" + strrouteworkline); if (sql.Rows.Count == 0) { MessageBox.Show("路线中地标不可以跨生产区输入!"); return; } sql.Open("select * from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strlinenum + " and MarkID=" + strmarkid + " and WorkLine=" + strrouteworkline); //if (sql.Rows.Count > 0) //{ // MessageBox.Show("路线中已存在此地标,不可重复输入相同地标!"); // return; //} sql.Open("SELECT MAX(MarkOrder) AS MaxOrder FROM T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strlinenum + " and WorkLine=" + strrouteworkline); if (sql.Rows.Count > 0) { if (!string.IsNullOrEmpty(sql.Rows[0]["MaxOrder"].ToString())) { if ((Convert.ToInt32(sql.Rows[0]["MaxOrder"]) + 1) < Convert.ToInt32(strorder)) { MessageBox.Show("对不起,请按序号的顺序输入线路!"); return; } } } sql.Open("update T_Line set MarkOrder=MarkOrder+1 from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strlinenum + " and MarkOrder>=" + strorder + " and WorkLine=" + strrouteworkline); sql.Open("insert into T_Line (LineNum,MarkID,MarkOrder,Distance,Parallel,Direction) Values (@linenum,@markid,@markorder,@distance,@parallel,@direction)", new SqlParameter[]{ new SqlParameter("linenum",strlinenum), new SqlParameter("markid",strmarkid), new SqlParameter("markorder",strorder), new SqlParameter("distance",strdistance), new SqlParameter("parallel",strparallel), new SqlParameter("direction",strdirection) }); sql.Close(); linenum = Convert.ToInt32(strlinenum); LoadDataGrid(cbRoute_WorkLine.Text.Trim(),linenum); BindLineCombox(cbRoute_WorkLine.Text.Trim()); MessageBox.Show("添加成功!"); this.cbRoute.SelectedValue = strlinenum; this.tbOrder.Text = (Convert.ToInt32(strorder) + 1).ToString(); if (IsIDModel) { this.tbMarkID.Text = (Convert.ToInt32(strmarkid) + 1).ToString(); } else { this.tbMark.Text = (Convert.ToInt32(strmark) + 1).ToString(); } } /// /// 修改记录 /// /// /// private void ModifyRecord_Click(object sender, RoutedEventArgs e) { if (id <= 0) { MessageBox.Show("请在表格中选择要修改的行!"); return; } string strlinenum = cbRoute.Text.ToString().Trim(); string strorder = tbOrder.Text.ToString().Trim(); string strmarkid = tbMarkID.Text.ToString().Trim(); string strdistance = tbDistance.Text.ToString().Trim(); string strmark = tbMark.Text.ToString().Trim(); string strworkline = cbWorkLine.Text.ToString().Trim(); strrouteworkline = cbRoute_WorkLine.Text.ToString().Trim(); string strparallel = comboBox1.Text.ToString().Trim(); string strdirection = comboBox2.Text.ToString().Trim(); if (IsIDModel) { if (string.IsNullOrEmpty(strlinenum) || string.IsNullOrEmpty(strorder) || string.IsNullOrEmpty(strmark) || string.IsNullOrEmpty(strworkline) || string.IsNullOrEmpty(strdistance) || string.IsNullOrEmpty(strrouteworkline)) { MessageBox.Show("对不起,请同时输入线路、序号、地标和距离!"); return; } sql.Open("select * from T_Mark where ID=" + strmarkid); //if (sql.Rows.Count <= 0) //{ // MessageBox.Show("输入的地标ID不存在!"); // return; //} } else { if (string.IsNullOrEmpty(strlinenum) || string.IsNullOrEmpty(strorder) || string.IsNullOrEmpty(strmarkid) || string.IsNullOrEmpty(strdistance) || string.IsNullOrEmpty(strrouteworkline)) { MessageBox.Show("对不起,请同时输入线路、序号、生产区、地标和距离!"); return; } sql.Open("select ID from T_Mark where WorkLine=" + strworkline + " and Mark=" + strmark); if (sql.Rows.Count <= 0) { MessageBox.Show("输入的地标ID不存在!"); return; } strmarkid = sql.Rows[0]["ID"].ToString(); } sql.Open("select * from T_Line where LineNum=" + linenum.ToString() + " and MarkOrder=" + strorder); if (sql.Rows.Count == 0) { MessageBox.Show("您修改的序号记录不存在!"); return; } sql.Open("select * from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + linenum.ToString() + " and MarkID=" + strmarkid + " and Distance=" + strdistance + " and WorkLine=" + strrouteworkline); //if (sql.Rows.Count > 0) //{ // MessageBox.Show("路线中已存在此地标,不可重复输入相同地标!"); // return; //} sql.Open("update T_Line set MarkID=@markid,Distance=@distance,Parallel=@parallel ,Direction=@direction where ID=@id", new SqlParameter[]{ new SqlParameter("id",id.ToString()), new SqlParameter("markid",strmarkid), new SqlParameter("distance",strdistance), new SqlParameter("parallel",strparallel), new SqlParameter("direction",strdirection) }); sql.Close(); LoadDataGrid(cbRoute_WorkLine.Text.Trim(),linenum); MessageBox.Show("修改成功!"); } /// /// 删除记录 /// /// /// private void DeleteRecord_Click(object sender, RoutedEventArgs e) { string strlinenum = cbRoute.Text.ToString().Trim(); string strorder = tbOrder.Text.ToString().Trim(); strrouteworkline = cbRoute_WorkLine.Text.ToString().Trim(); if (string.IsNullOrEmpty(strorder) || string.IsNullOrEmpty(strlinenum) || string.IsNullOrEmpty(strrouteworkline)) { MessageBox.Show("对不起,请同时输入路线和序号!"); return; } if (id > 0) { sql.Open("select * from T_Line where ID=" + id.ToString()); if (sql.rowcount <= 0) { MessageBox.Show("对不起,请从表格中选择要删除的行!"); return; } sql.Open("delete from T_Line where ID=" + id.ToString()); sql.Open("update T_Line set MarkOrder=MarkOrder-1 from T_Line LEFT OUTER JOIN T_Mark ON T_Line.MarkID = T_Mark.ID where LineNum=" + strlinenum + " and MarkOrder>" + strorder + " and WorkLine=" + strrouteworkline); MessageBox.Show("删除成功!"); LoadDataGrid(cbRoute_WorkLine.Text.Trim(), linenum); sql.Close(); } } /// /// 线路下拉框消息触发 /// /// /// private void cbRoute_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cbRoute.SelectedValue != null) { linenum = Convert.ToUInt16(cbRoute.SelectedValue.ToString().Trim()); LoadDataGrid(cbRoute_WorkLine.Text.Trim(), linenum); } } bool MapZoomInOut = false; Point lastpoint = new Point(0, 0); Point OffsetPoint = new Point(0, 0); /// /// 画布中鼠标左键消息 /// /// /// private void canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { MapZoomInOut = true; lastpoint.X = e.GetPosition(null).X + OffsetPoint.X; lastpoint.Y = e.GetPosition(null).Y + OffsetPoint.Y; this.Cursor = Cursors.Hand; } /// /// 鼠标移出画布消息 /// /// /// private void canvas_MouseLeave(object sender, MouseEventArgs e) { MapZoomInOut = false; } /// /// 鼠标左键弹起消息 /// /// /// private void canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (MapZoomInOut) { MapZoomInOut = false; OffsetPoint = canvas.Offset; } } /// /// 鼠标滚轮消息 /// /// /// private void canvas_MouseWheel(object sender, MouseWheelEventArgs e) { canvas.Scale += e.Delta / 1000.0; //最大放大十倍 if (canvas.Scale > 10) { canvas.Scale = 10; } //缩小可以小到3倍 if (canvas.Scale < 0.3) { canvas.Scale = 0.3; } } /// /// 画布中鼠标移动消息 /// /// /// private void canvas_MouseMove(object sender, MouseEventArgs e) { if (MapZoomInOut) { Point newpoint = e.GetPosition(null); canvas.Offset = new Point(lastpoint.X - newpoint.X, lastpoint.Y - newpoint.Y); } } //修改日期:2013-12-1 //修改内容:添加了输入地标时的切换功能,地标ID与地标、生产区可以切换输入 private void btn_Shift_Click(object sender, RoutedEventArgs e) { IsIDModel = !IsIDModel; tbMarkID.Visibility = IsIDModel ? Visibility.Visible : Visibility.Hidden; labelMarkID.Visibility = IsIDModel ? Visibility.Visible : Visibility.Hidden; tbMark.Visibility = !IsIDModel ? Visibility.Visible : Visibility.Hidden; labelMark.Visibility = !IsIDModel ? Visibility.Visible : Visibility.Hidden; cbWorkLine.Visibility = !IsIDModel ? Visibility.Visible : Visibility.Hidden; labelWorkLine.Visibility = !IsIDModel ? Visibility.Visible : Visibility.Hidden; } //修改日期:2013-12-23 //修改内容:复制线路时,添加了返回功能和禁用按钮功能 private void CancelCopy_Click(object sender, RoutedEventArgs e) { this.tbOrder.Visibility = Visibility.Visible; this.tbMarkID.Visibility = Visibility.Visible; this.tbDistance.Visibility = Visibility.Visible; this.labelOrder.Visibility = Visibility.Visible; this.labelDistance.Visibility = Visibility.Visible; this.labelMarkID.Visibility = Visibility.Visible; this.btn_Shift.Visibility = Visibility.Visible; this.labelNewRoute.Visibility = Visibility.Hidden; this.tbNewRoute.Visibility = Visibility.Hidden; this.CancelCopy.Visibility = Visibility.Hidden; btnAdd.IsEnabled = true; ModifyRecord.IsEnabled = true; DeleteRecord.IsEnabled = true; tbNewRoute.Text = ""; } //修改日期:2013-12-30 //添加内容:线路号按照生产区划分 private void cbRoute_WorkLine_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cbRoute_WorkLine.SelectedValue != null) { BindLineCombox(cbRoute_WorkLine.SelectedValue.ToString().Trim()); } } /// /// 页面卸载消息 /// /// /// private void Page_Unloaded(object sender, RoutedEventArgs e) { Properties.Settings.Default.MarkVirtualColor = IsVirtualMark.Color; Properties.Settings.Default.MarkNotColor = NotVirtualMark.Color; Properties.Settings.Default.MarkDiameter = MarkDiameter; Properties.Settings.Default.RouteColor = RouteColor.Color; Properties.Settings.Default.Save(); } /// /// 虚拟点颜色设置 /// /// /// private void EVirtualMark_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { ColorFont.ColorDialog fntDialog = new ColorFont.ColorDialog(IsVirtualMark, MarkDiameter); if (fntDialog.ShowDialog() == true) { IsVirtualMark = fntDialog.selectedColor; MarkDiameter = fntDialog.selectedSize; EVirtualMark.Fill = fntDialog.selectedColor; LoadAllMark(); } } /// /// 非虚拟点颜色设置 /// /// /// private void ENotVirtualMark_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { ColorFont.ColorDialog fntDialog = new ColorFont.ColorDialog(NotVirtualMark, MarkDiameter); if (fntDialog.ShowDialog() == true) { NotVirtualMark = fntDialog.selectedColor; MarkDiameter = fntDialog.selectedSize; ENotVirtualMark.Fill = fntDialog.selectedColor; LoadAllMark(); } } /// /// 线路颜色设置 /// /// /// private void RecRoute_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { ColorFont.ColorDialog fntDialog = new ColorFont.ColorDialog(RouteColor, MarkDiameter); if (fntDialog.ShowDialog() == true) { RouteColor = fntDialog.selectedColor; RecRoute.Fill = fntDialog.selectedColor; path.Stroke = RouteColor; LoadDataGrid(cbRoute_WorkLine.Text.Trim(), linenum); } } } }