123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681 |
- 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 System.Data;
- using System.Data.SqlClient;
- using System.Configuration;
- using ColorFont;
- using AGV_WPF.TrafficDefine;
- namespace AGV_WPF
- {
- /// <summary>
- /// TrafficManage.xaml 的交互逻辑
- /// </summary>
- public partial class TrafficManage : Page
- {
- public DAL.ZSql sql1 = new DAL.ZSql();
- public SolidColorBrush IsVirtualMark = Brushes.Gray;
- public SolidColorBrush NotVirtualMark = Brushes.Yellow;
- public SolidColorBrush TrafficColor = Brushes.Red;
- public SolidColorBrush KeyMarkColor = Brushes.Green;//关键点颜色
- public List<Ellipse> pointList = new List<Ellipse>();
- public List<Label> pointLableList = new List<Label>();
- public int trafficnum = -1;
- public int id = -1;
- public double MarkDiameter = 2;
- public bool IsIDModel = true;
- public bool IsIDModel_Key = true;
- //可以在此类中设置限制管制区和管制区地标数
- public int TRAFFIC_CONAREA_MAX = Convert.ToInt32(ConfigurationManager.AppSettings["TRAFFIC_CONAREA_MAX"]);//可以设置的最大管制区数量
- public byte TRAFFIC_CONAREA_MARKNUM_MAX = Convert.ToByte(ConfigurationManager.AppSettings["TRAFFIC_CONAREA_MARKNUM_MAX"]);//管制区最大地标数量
- public TrafficManage()
- {
- InitializeComponent();
- }
- /// <summary>
- /// 页面加载
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Page_Loaded(object sender, RoutedEventArgs e)
- {
- IsVirtualMark = new SolidColorBrush(Properties.Settings.Default.MarkVirtualColor);
- NotVirtualMark = new SolidColorBrush(Properties.Settings.Default.MarkNotColor);
- TrafficColor = new SolidColorBrush(Properties.Settings.Default.TrafficColor);
- KeyMarkColor = new SolidColorBrush(Properties.Settings.Default.TrafficKeyMarkColor);
- MarkDiameter = Properties.Settings.Default.MarkDiameter;
- MapInit(@"Image\background.png");
- EVirtualMark.Fill = IsVirtualMark;
- ENotVirtualMark.Fill = NotVirtualMark;
- ETrafficMark.Fill = TrafficColor;
-
- this.dataGrid1.LoadingRow += new EventHandler<DataGridRowEventArgs>(this.DataGridSoftware_LoadingRow);
- BindLineCombox();
- BindWorkLineCombox();
- LoadAllMark();
- }
- /// <summary>
- /// 加载电子地图背景图片
- /// </summary>
- /// <param name="struri">电子地图图片位置</param>
- 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;
- }
- /// <summary>
- /// 为表格加入行号
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void DataGridSoftware_LoadingRow(object sender, DataGridRowEventArgs e)
- {
- e.Row.Header = e.Row.GetIndex() + 1;
- }
- /// <summary>
- /// 加载地标
- /// </summary>
- private void LoadAllMark()
- {
- DAL.ZSql sql1 = new DAL.ZSql();
- sql1.Open("select * from T_Mark Order by WorkLine,Mark");
- //加载地图中地标
- canvas.Children.Clear();
- pointLableList.Clear();
- pointList.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.Tag = new MarkInfo() { m_id = Convert.ToInt32(sql1.Rows[i]["ID"]), m_workline = Convert.ToInt32(sql1.Rows[i]["WorkLine"]), m_mark = Convert.ToInt32(sql1.Rows[i]["Mark"]), m_x = x, m_y = y, m_isVirtual = Convert.ToBoolean(sql1.Rows[i]["VirtualMark"]) };
- 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(); //地标编号
- marklable.Tag = new MarkInfo() { m_id = Convert.ToInt32(sql1.Rows[i]["ID"]), m_workline = Convert.ToInt32(sql1.Rows[i]["WorkLine"]), m_mark = Convert.ToInt32(sql1.Rows[i]["Mark"]), m_x = x, m_y = y, m_isVirtual = Convert.ToBoolean(sql1.Rows[i]["VirtualMark"]) };
- Canvas.SetLeft(marklable, x-10);
- Canvas.SetTop(marklable, y-15);
- canvas.Children.Add(marklable);
- pointLableList.Add(marklable);
- }
- canvas.Children.Add(markellipse);
- pointList.Add(markellipse);
- }
- sql1.Close();
- }
- /// <summary>
- /// 交通管制区号绑定
- /// </summary>
- private void BindLineCombox()
- {
- DAL.ZSql sql1 = new DAL.ZSql();
- sql1.Open("select DISTINCT TrafficNum from T_Traffic order by TrafficNum");
- cbTraffic.ItemsSource = sql1.m_table.DefaultView;
- cbTraffic.DisplayMemberPath = "TrafficNum";
- cbTraffic.SelectedValuePath = "TrafficNum";
- sql1.Close();
- }
-
- //修改日期:2013-12-1
- /// <summary>
- /// 生产区下拉框绑定
- /// </summary>
- 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";
- //添加0号路线,表示所有路线都关联
- DAL.ZSql sql2 = new DAL.ZSql();
- sql2.Open("Select 0 as LineNum union Select DISTINCT LineNum from T_Line");
- cbLineNum.ItemsSource = sql2.m_table.DefaultView;
- cbLineNum.DisplayMemberPath = "LineNum";
- cbLineNum.SelectedValuePath = "LineNum";
- sql2.Close();
- }
- /// <summary>
- /// 表格选择不同行消息触发
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- DataRowView selectItem = dataGrid1.SelectedItem as DataRowView;
- if (selectItem != null)
- {
- id =Convert.ToInt16(selectItem["ID"].ToString().Trim());
- cbWorkLine.Text = string.IsNullOrEmpty(selectItem["WorkLine"].ToString().Trim()) ? "0" : selectItem["WorkLine"].ToString().Trim();
- cbLineNum.Text = string.IsNullOrEmpty(selectItem["LineNum"].ToString().Trim()) ? "0" : selectItem["LineNum"].ToString().Trim();
- txtMark.Text = string.IsNullOrEmpty(selectItem["Mark"].ToString().Trim()) ? "0" : selectItem["Mark"].ToString().Trim();
- }
- else
- {
- cbWorkLine.Text = "";
- cbLineNum.Text = "";
- txtMark.Text = "";
- }
- }
- /// <summary>
- /// 删除交通管制区
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnDeleteTraffic_Click(object sender, RoutedEventArgs e)
- {
- string trafficnum = cbTraffic.Text.ToString().Trim();
- if (string.IsNullOrEmpty(trafficnum))
- {
- MessageBox.Show("请输要删除的交通管制区号!");
- cbTraffic.Focus();
- return;
- }
- sql1.Open("select * from T_Traffic where TrafficNum=" + trafficnum);
- if (sql1.Rows.Count <= 0)
- {
- MessageBox.Show("不存在此交通管制区号!");
- return;
- }
- if (MessageBox.Show("确认要删除此管制区?","警告",MessageBoxButton.YesNo,MessageBoxImage.Warning) == MessageBoxResult.Yes)
- {
- sql1.Open("delete T_Traffic where TrafficNum=" + trafficnum);
- int num = Convert.ToInt16(trafficnum);
- DeleteTraffic(num);
- MessageBox.Show("删除交通管制区号成功!");
- BindLineCombox();
- }
- sql1.Close();
- }
- /// <summary>
- /// 删除交通管制区(新管制表)
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void DeleteTraffic(int trafficnum)
- {
-
- if (trafficnum<=0)
- {
- MessageBox.Show("请输要删除的交通管制区号!");
- cbTraffic.Focus();
- return;
- }
- sql1.Open("select * from BAS_TRAFFIC where TrafficNum=" + trafficnum);
- if (sql1.Rows.Count <= 0)
- {
- MessageBox.Show("不存在此交通管制区号!");
- return;
- }
- if (MessageBox.Show("确认要删除此管制区?", "警告", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
- {
- sql1.Open("delete BAS_TRAFFIC where TrafficNum=" + trafficnum);
- }
- sql1.Close();
- }
- /// <summary>
- /// 添加交通管制区
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnAdd_Click(object sender, RoutedEventArgs e)
- {
- //获取界面数据
- string strtraffic = cbTraffic.Text.ToString().Trim();
- string strmark = txtMark.Text.ToString().Trim();
- string strworkline = cbWorkLine.Text.ToString().Trim();
- string strlinenum = cbLineNum.Text.ToString().Trim();
- #region 检查验证数据的正确完整性
- //验证数据是否填写完整
- if (string.IsNullOrEmpty(strmark) || string.IsNullOrEmpty(strworkline) || string.IsNullOrEmpty(strtraffic) || string.IsNullOrEmpty(strlinenum))
- {
- MessageBox.Show("交通管制区、生产区、路线、地标都不能为空!");
- return;
- }
- //地标卡号验证
- sql1.Open("select ID from T_Mark where WorkLine=" + strworkline + " and Mark=" + strmark);
- if (sql1.rowcount < 1)
- {
- MessageBox.Show("输入的地标不存在!");
- return;
- }
- string strmarkid = sql1.Rows[0]["ID"].ToString();
- //检查数据是否重复添加
- sql1.Open("select * from T_Traffic where MarkID=@markid and TrafficNum=@trafficnum and LineNum=@linenum",
- new SqlParameter[]{
- new SqlParameter("markid",strmarkid),
- new SqlParameter("linenum",strlinenum),
- new SqlParameter("trafficnum",strtraffic)
- });
- if (sql1.Rows.Count > 0)
- {
- MessageBox.Show("对不起,已存在相同记录!");
- return;
- }
- #endregion
- #region 插入管制区与地标卡和路线之间的关系表
- sql1.Open("insert into T_Traffic (TrafficNum,MarkID,LineNum) Values (@trafficnum,@markid,@linenum)",
- new SqlParameter[]{
- new SqlParameter("trafficnum",strtraffic),
- new SqlParameter("markid",strmarkid),
- new SqlParameter("linenum",strlinenum)
- });
- sql1.Close();
- #endregion
- #region 插入新管制表
- DAL.ZSql sql2 = new DAL.ZSql();
- sql2.Open("select * from BAS_TRAFFIC where TrafficNum="+strtraffic);
- if (sql2.Rows.Count > 0)
- {
- ;
- }
- else
- {
- try
- {
- string sqlstr = string.Format("insert into BAS_TRAFFIC(TrafficNum,TrafficName,MainAgv,EnterTime,IsTraffic) Values ({0},{1},{2},'{3}',{4})", strtraffic, strtraffic, 0, DateTime.Now.ToString("yyyy-MM-dd"), 0);
- sql2.Open(sqlstr);
- sql2.Close();
- }
- catch(Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- trafficnum = Convert.ToInt32(strtraffic);
- LoadDataGrid(trafficnum.ToString());
- BindLineCombox();
- MessageBox.Show("添加成功!");
- cbTraffic.SelectedValue = strtraffic;
- }
-
- /// <summary>
- /// 修改交通管制区
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnModify_Click(object sender, RoutedEventArgs e)
- {
- if (id <= 0)
- {
- MessageBox.Show("请在表格中选择要修改的行!");
- return;
- }
- string strtraffic = cbTraffic.Text.ToString().Trim();
- string strlinenum = cbLineNum.Text.ToString().Trim();
- string strmark = txtMark.Text.ToString().Trim();
- string strworkline = cbWorkLine.Text.ToString().Trim();
- #region 检查验证数据的正确完整性
- //验证数据是否填写完整
- if (string.IsNullOrEmpty(strmark) || string.IsNullOrEmpty(strworkline) || string.IsNullOrEmpty(strtraffic) || string.IsNullOrEmpty(strlinenum))
- {
- MessageBox.Show("交通管制区、生产区、路线、地标都不能为空!");
- return;
- }
- //地标卡号验证
- sql1.Open("select ID from T_Mark where WorkLine=" + strworkline + " and Mark=" + strmark);
- if (sql1.rowcount < 1)
- {
- MessageBox.Show("输入的地标不存在!");
- return;
- }
- string strmarkid = sql1.Rows[0]["ID"].ToString();
- //检查数据是否重复添加
- sql1.Open("select * from T_Traffic where MarkID=@markid and TrafficNum=@trafficnum and LineNum=@linenum",
- new SqlParameter[]{
- new SqlParameter("markid",strmarkid),
- new SqlParameter("linenum",strlinenum),
- new SqlParameter("trafficnum",strtraffic)
- });
- if (sql1.Rows.Count > 0)
- {
- MessageBox.Show("对不起,已存在相同记录!");
- return;
- }
- #endregion
- #region 更新管制区数据关联表
- sql1.Open("update T_Traffic set MarkID=@markid,linenum=@linenum,Mark=@mark where ID=@id",
- new SqlParameter[]{
- new SqlParameter("markid",strmarkid),
- new SqlParameter("linenum",strlinenum),
- new SqlParameter("mark",strmark),
- new SqlParameter("id",id)
- });
- sql1.Close();
- #endregion
- LoadDataGrid(trafficnum.ToString());
- MessageBox.Show("修改成功!");
- }
- /// <summary>
- /// 删除管制区中点
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnDelete_Click(object sender, RoutedEventArgs e)
- {
- string strtraffic = cbTraffic.Text.ToString().Trim();
- string strmark = txtMark.Text.ToString().Trim();
- string strworkline = cbWorkLine.Text.ToString().Trim();
- string strlinenum = cbLineNum.Text.ToString();
- #region 检查验证数据的正确完整性
- //验证数据是否填写完整
- if (string.IsNullOrEmpty(strmark) || string.IsNullOrEmpty(strworkline) || string.IsNullOrEmpty(strtraffic) || string.IsNullOrEmpty(strlinenum))
- {
- MessageBox.Show("交通管制区、生产区、路线、地标都不能为空!");
- return;
- }
- //地标卡号验证
- sql1.Open("select ID from T_Mark where WorkLine=" + strworkline + " and Mark=" + strmark);
- if (sql1.rowcount < 1)
- {
- MessageBox.Show("输入的地标不存在!");
- return;
- }
-
- #endregion
- string strmarkid = sql1.Rows[0]["ID"].ToString();
- sql1.Open("delete from T_Traffic where TrafficNum=@trafficnum and MarkID=@markid and linenum=@linenum",
- new SqlParameter[]{
- new SqlParameter("trafficnum",strtraffic),
- new SqlParameter("markid",strmarkid),
- new SqlParameter("linenum",strlinenum)
- });
- LoadDataGrid(strtraffic);
- sql1.Close();
- MessageBox.Show("删除成功!");
- }
- /// <summary>
- /// 交通管制区号下拉框选择消息响应
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void cbTraffic_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (cbTraffic.SelectedValue != null)
- {
- trafficnum = Convert.ToUInt16(cbTraffic.SelectedValue.ToString().Trim());
- LoadDataGrid(trafficnum.ToString());
- }
- }
- void UpdateMark()
- {
- for (int i = 0; i < pointList.Count;i++ )
- {
- MarkInfo info = pointList[i].Tag as MarkInfo;
- if (info != null)
- {
- pointList[i].Height = MarkDiameter;
- pointList[i].Width = MarkDiameter;
- Canvas.SetLeft(pointList[i], info.m_x - MarkDiameter/2);
- Canvas.SetTop(pointList[i], info.m_y - MarkDiameter/2);
- if (info.m_isVirtual)//虚拟点
- {
- pointList[i].Fill = IsVirtualMark;
- }
- else
- {
- pointList[i].Fill = NotVirtualMark;
- }
- }
- }
- for (int i = 0; i < pointLableList.Count;i++ )
- {
- MarkInfo info = pointLableList[i].Tag as MarkInfo;
- if (info != null)
- {
- pointLableList[i].Foreground = Brushes.Black;
- Canvas.SetLeft(pointLableList[i], info.m_x - 4);
- Canvas.SetTop(pointLableList[i], info.m_y - 7);
- }
- }
-
- }
- /// <summary>
- /// 加载数据表格
- /// </summary>
- /// <param name="paratrafficnum">交通管制编号</param>
- private void LoadDataGrid(string paratrafficnum)
- {
- DAL.ZSql sql2 = new DAL.ZSql();
- sql2.Open(string.Format("select A.ID,A.TrafficNum,A.MarkID,B.Mark,B.WorkLine,B.XPos,B.YPos,A.LineNum from T_Traffic A right join T_Mark B on B.ID=A.MarkID where TrafficNum={0}", paratrafficnum));
-
- LoadAllMark();
- UpdateMark();
- double x, y;
- for (int i = 0; i < sql2.Rows.Count; i++)
- {
- if (!string.IsNullOrEmpty(sql2.Rows[i]["MarkID"].ToString()) && !string.IsNullOrEmpty(sql2.Rows[i]["XPos"].ToString()) && !string.IsNullOrEmpty(sql2.Rows[i]["YPos"].ToString()))
- {
- x = Convert.ToDouble(sql2.Rows[i]["XPos"]);
- y = Convert.ToDouble(sql2.Rows[i]["YPos"]);
- int index = pointList.FindIndex(c => ((MarkInfo)c.Tag).m_id.ToString() == sql2.Rows[i]["MarkID"].ToString());
- if(index != -1)
- {
- Ellipse markellipse = pointList[index];
- markellipse.Height = MarkDiameter ;
- markellipse.Width = MarkDiameter;
- markellipse.Fill = TrafficColor;
- markellipse.ToolTip = "MarkID:" + sql2.Rows[i]["MarkID"].ToString() + "\r\nWorkLine:" + sql2.Rows[i]["WorkLine"].ToString() + " Mark:" + sql2.Rows[i]["Mark"];
- Canvas.SetLeft(markellipse, x - MarkDiameter/2);
- Canvas.SetTop(markellipse, y - MarkDiameter/2);
- }
- int index2 = pointLableList.FindIndex(c => ((MarkInfo)c.Tag).m_id.ToString() == sql2.Rows[i]["MarkID"].ToString());
- if(index2 != -1)
- {
- Label marklable = pointLableList[index2];
- marklable.FontSize = 10;
- marklable.Foreground = TrafficColor;
- //marklable.Content = sql2.Rows[i]["MarkID"].ToString();//地标ID
- marklable.Content = sql2.Rows[i]["Mark"].ToString(); //地标编号
- Canvas.SetLeft(marklable, x - 14);
- Canvas.SetTop(marklable, y -20);
- }
- }
- }
- dataGrid1.ItemsSource = sql2.m_table.DefaultView;
- sql2.Close();
- }
-
- bool MapZoomInOut = false;
- Point lastpoint = new Point(0, 0);
- Point OffsetPoint = new Point(0, 0);
- /// <summary>
- /// 画布中鼠标左键消息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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;
- }
- /// <summary>
- /// 鼠标移出画布消息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void canvas_MouseLeave(object sender, MouseEventArgs e)
- {
- MapZoomInOut = false;
- }
- /// <summary>
- /// 鼠标左键弹起消息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
- {
- if (MapZoomInOut)
- {
- MapZoomInOut = false;
- OffsetPoint = canvas.Offset;
- }
- }
- /// <summary>
- /// 鼠标滚轮消息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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;
- }
- }
- /// <summary>
- /// 画布中鼠标移动消息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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);
- }
- }
- 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();
-
- }
- }
- /// <summary>
- /// 虚拟点颜色设置
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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();
-
- }
- }
- /// <summary>
- /// 非虚拟点颜色设置
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ETrafficMark_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- ColorFont.ColorDialog fntDialog = new ColorFont.ColorDialog(TrafficColor, MarkDiameter);
- if (fntDialog.ShowDialog() == true)
- {
- TrafficColor = fntDialog.selectedColor;
- ETrafficMark.Fill = fntDialog.selectedColor;
- MarkDiameter = fntDialog.selectedSize;
- if (cbTraffic.SelectedValue != null)
- {
- trafficnum = Convert.ToUInt16(cbTraffic.SelectedValue.ToString().Trim());
- LoadDataGrid(trafficnum.ToString());
- }
- }
- }
- /// <summary>
- /// 页面卸载消息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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.TrafficColor = TrafficColor.Color;
- Properties.Settings.Default.TrafficKeyMarkColor = KeyMarkColor.Color;
- Properties.Settings.Default.Save();
- if (MessageBox.Show("是否更新管制区数据?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes)
- TrafficManager.Traffic.InitTrafficAreas();
- }
-
- }
- }
|