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 ColorFont;
namespace AGV_WPF
{
///
/// MarkManage.xaml 的交互逻辑
///
public partial class MarkManage : Page
{
public DAL.ZSql sql = new DAL.ZSql();
public SolidColorBrush IsVirtualMark = Brushes.OrangeRed;
public SolidColorBrush NotVirtualMark = Brushes.Yellow;
public int id = -1;
public bool IsQuickAdd = false;
public bool IsQuickGet = false;
public double MarkDiameter = 4;
public Ellipse SelectedMark = new Ellipse();
public List pointList = new List();
public List pointLableList = new List();
public MarkManage()
{
InitializeComponent();
SelectedMark.Height = MarkDiameter * 2;
SelectedMark.Width = MarkDiameter * 2;
SelectedMark.Fill = Brushes.Brown;
canvas.Children.Add(SelectedMark);
}
///
/// 页面加载
///
///
///
private void Page_Loaded(object sender, RoutedEventArgs e)
{
MapInit(@"Image\background.png");
IsVirtualMark = new SolidColorBrush(Properties.Settings.Default.MarkVirtualColor);
NotVirtualMark = new SolidColorBrush(Properties.Settings.Default.MarkNotColor);
MarkDiameter = Properties.Settings.Default.MarkDiameter;
EVirtualMark.Fill = IsVirtualMark;
ENotVirtualMark.Fill = NotVirtualMark;
LoadData();
}
void AddEllipse(int id,double x,double y,int mark,int workLine,bool isVirtual)
{
var values = from s in pointList where s.Tag.ToString() == id.ToString() select s;
if (values.Count() == 0)
{
Ellipse markellipse = new Ellipse();
markellipse.Tag = new MarkInfo() { m_id = id, m_workline = workLine, m_mark = mark, m_x = x, m_y = y, m_isVirtual = isVirtual };
markellipse.Height = MarkDiameter;
markellipse.Width = MarkDiameter;
//markellipse.ToolTip = "ID:" + id+ "\r\nWorkLine:" + workLine + " Mark:" + mark;
markellipse.ToolTip = string.Format("ID:{0}\r\nWorkLine:{1} Mark:{2}", id, workLine, mark);
Canvas.SetLeft(markellipse, x - MarkDiameter / 2);
Canvas.SetTop(markellipse, y - MarkDiameter / 2);
//设置虚拟点颜色
if (isVirtual)
{
markellipse.Fill = IsVirtualMark;
}
else
{
//非虚拟点加入ID显示
markellipse.Fill = NotVirtualMark;
Label marklable = new Label();
marklable.FontSize = 10;
marklable.Foreground = Brushes.Black;
//marklable.Content = id.ToString();
marklable.Content = mark.ToString();
marklable.Tag = new MarkInfo() { m_id = id, m_workline = workLine, m_mark = mark, m_x = x, m_y = y, m_isVirtual = isVirtual };
Canvas.SetLeft(marklable, x - 14);
Canvas.SetTop(marklable, y - 20);
canvas.Children.Add(marklable);
pointLableList.Add(marklable);
}
canvas.Children.Add(markellipse);
pointList.Add(markellipse);
DAL.ZSql sql1 = new DAL.ZSql();
sql1.Open("select * from T_Mark Order by WorkLine,Mark");
dataGrid1.ItemsSource = sql1.m_table.DefaultView;
sql1.Close();
}
}
void UpdateEllipse(int id, double x, double y, int mark, int workLine, bool isVirtual)
{
int index = pointList.FindIndex(c => ((MarkInfo)c.Tag).m_id == id);
if (index != -1)
{
Ellipse markellipse = pointList[index];
markellipse.Tag = new MarkInfo() { m_id = id, m_workline = workLine, m_mark = mark, m_x = x, m_y = y, m_isVirtual = isVirtual };
markellipse.Height = MarkDiameter;
markellipse.Width = MarkDiameter;
//markellipse.ToolTip = "ID:" + id+ "\r\nWorkLine:" + workLine + " Mark:" + mark;
markellipse.ToolTip = string.Format("ID:{0}\r\nWorkLine:{1} Mark:{2}", id, workLine, mark);
Canvas.SetLeft(markellipse, x - MarkDiameter / 2);
Canvas.SetTop(markellipse, y - MarkDiameter / 2);
//设置虚拟点颜色
if (isVirtual)
{
markellipse.Fill = IsVirtualMark;
}
else
{
int index2 = pointLableList.FindIndex(c => c.Tag.ToString() == id.ToString());
if (index2 != -1)
{
//非虚拟点加入ID显示
markellipse.Fill = NotVirtualMark;
Label marklable = pointLableList[index2];
marklable.FontSize = 10;
marklable.Foreground = Brushes.Black;
//marklable.Content = id.ToString();
marklable.Content = mark.ToString();
marklable.Tag = new MarkInfo() { m_id = id, m_workline = workLine, m_mark = mark, m_x = x, m_y = y, m_isVirtual = isVirtual };
Canvas.SetLeft(marklable, x - 14);
Canvas.SetTop(marklable, y - 20);
}
}
DAL.ZSql sql1 = new DAL.ZSql();
sql1.Open("select * from T_Mark Order by WorkLine,Mark");
dataGrid1.ItemsSource = sql1.m_table.DefaultView;
sql1.Close();
}
}
void DeleteEllipse(int id)
{
int index = pointList.FindIndex(c => ((MarkInfo)c.Tag).m_id == id);
if (index != -1)
{
canvas.Children.Remove(pointList[index]);
pointList.RemoveAt(index);
}
int index2 = pointLableList.FindIndex(c => ((MarkInfo)c.Tag).m_id == id);
if (index2 != -1)
{
canvas.Children.Remove(pointLableList[index2]);
pointLableList.RemoveAt(index2);
}
if (index != -1 || index2 != -1)
{
DAL.ZSql sql1 = new DAL.ZSql();
sql1.Open("select * from T_Mark Order by WorkLine,Mark");
dataGrid1.ItemsSource = sql1.m_table.DefaultView;
sql1.Close();
}
}
private void LoadData()
{
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.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 = Convert.ToDouble(sql1.Rows[i]["XPos"]), m_y = Convert.ToDouble(sql1.Rows[i]["YPos"]), m_isVirtual = Convert.ToBoolean(sql1.Rows[i]["VirtualMark"]) };
markellipse.Height = MarkDiameter;
markellipse.Width = MarkDiameter;
markellipse.ToolTip = "ID:" + 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
{
//非虚拟点加入ID显示
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 = Convert.ToDouble(sql1.Rows[i]["XPos"]), m_y = Convert.ToDouble(sql1.Rows[i]["YPos"]), 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);
}
//加载表格
dataGrid1.ItemsSource = sql1.m_table.DefaultView;
sql1.Close();
}
///
/// 加载电子地图背景图片
///
/// 电子地图图片位置
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 LoadData2()
{
DAL.ZSql sql1 = new DAL.ZSql();
sql1.Open("select * from T_Mark Order by WorkLine,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 = "ID:" + 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
{
//非虚拟点加入ID显示
markellipse.Fill = NotVirtualMark;
Label marklable = new Label();
marklable.FontSize = 10;
marklable.Foreground = Brushes.Black;
//marklable.Content = sql1.Rows[i]["ID"].ToString();
marklable.Content = sql1.Rows[i]["Mark"].ToString();
Canvas.SetLeft(marklable, x - 14);
Canvas.SetTop(marklable, y - 20);
canvas.Children.Add(marklable);
}
//地标都显示出来
canvas.Children.Add(markellipse);
}
//加载表格
dataGrid1.ItemsSource = sql1.m_table.DefaultView;
sql1.Close();
}
///
/// 添加记录
///
///
///
private void AddRecord_Click(object sender, RoutedEventArgs e)
{
string txtworkline = tbWorkLine.Text.Trim();
string txtmark = tbMark.Text.Trim();
string txtxpos = tbXPos.Text.Trim();
string txtypos = tbYPos.Text.Trim();
if (string.IsNullOrEmpty(txtworkline) || string.IsNullOrEmpty(txtmark) ||
string.IsNullOrEmpty(txtxpos) || string.IsNullOrEmpty(txtypos))
{
MessageBox.Show("对不起,您输入信息不全!");
return;
}
sql.Open("select * from T_Mark where WorkLine=" + txtworkline + " and Mark=" + txtmark);
if (sql.Rows.Count > 0)
{
MessageBox.Show("已存在此记录!");
return;
}
int i = sql.Open("insert into T_Mark (WorkLine,Mark,XPos,YPos,VirtualMark) Values (@workline,@mark,@xpos,@ypos,@virtualmark)",
new SqlParameter[]{
new SqlParameter("workline",txtworkline),
new SqlParameter("mark",txtmark),
new SqlParameter("xpos",txtxpos),
new SqlParameter("ypos",txtypos),
new SqlParameter("virtualmark", Convert.ToBoolean(rbIsVirtual.IsChecked)?"1":"0")
});
if (i >= 0)
{
MessageBox.Show("添加记录成功!");
//LoadData();
{
sql.Open("select * from T_Mark where WorkLine=" + txtworkline + " and Mark=" + txtmark);
if (sql.Rows.Count > 0)
{
int id = int.Parse(sql.Rows[0]["ID"].ToString());
double x = double.Parse(sql.Rows[0]["XPos"].ToString());
double y = double.Parse(sql.Rows[0]["YPos"].ToString());
int mark = int.Parse(sql.Rows[0]["Mark"].ToString());
int workline = int.Parse(sql.Rows[0]["WorkLine"].ToString());
bool isVirtual = bool.Parse(sql.Rows[0]["VirtualMark"].ToString());
AddEllipse(id, x, y, mark, workline, isVirtual);
}
}
}
}
///
/// 修改记录
///
///
///
private void ModifyRecord_Click(object sender, RoutedEventArgs e)
{
//修改日期:2014-04-04
//不能修改地标
// if (id <= 0)
// {
// MessageBox.Show("对不起,请选择修改记录!");
// return;
// }
string txtworkline = tbWorkLine.Text.Trim();
string txtmark = tbMark.Text.Trim();
string txtxpos = tbXPos.Text.Trim();
string txtypos = tbYPos.Text.Trim();
if (string.IsNullOrEmpty(txtworkline) || string.IsNullOrEmpty(txtmark) ||
string.IsNullOrEmpty(txtxpos) || string.IsNullOrEmpty(txtypos))
{
MessageBox.Show("对不起,不能输入为空信息!");
return;
}
//修改日期:2014-01-02
//修改日期:2014-04-04
//不能修改地标
sql.Open("select * from T_Mark where WorkLine=" + txtworkline + " and Mark=" + txtmark);
if (sql.Rows.Count < 1)
{
MessageBox.Show("您需要修改的地标不存在,请重新输入!");
return;
}
//修改日期:2014-04-04
//不能修改地标
// int i = sql.Open("update T_Mark set WorkLine=@workline,Mark=@mark,XPos=@xpos,YPos=@ypos,VirtualMark=@virtualmark where ID=@id", new SqlParameter[]{
// new SqlParameter("id",id.ToString()),
// new SqlParameter("workline",txtworkline),
// new SqlParameter("mark",txtmark),
// new SqlParameter("xpos",txtxpos),
// new SqlParameter("ypos",txtypos),
// new SqlParameter("virtualmark", Convert.ToBoolean(rbIsVirtual.IsChecked)?"1":"0")
// });
// if (i >= 0)
// {
// MessageBox.Show("修改记录成功!");
// LoadData();
// }
int i = sql.Open("update T_Mark set XPos=@xpos,YPos=@ypos,VirtualMark=@virtualmark where WorkLine=@workline and Mark=@mark", new SqlParameter[]{
new SqlParameter("workline",txtworkline),
new SqlParameter("mark",txtmark),
new SqlParameter("xpos",txtxpos),
new SqlParameter("ypos",txtypos),
new SqlParameter("virtualmark", Convert.ToBoolean(rbIsVirtual.IsChecked)?"1":"0")
});
if (i >= 0)
{
MessageBox.Show("修改记录成功!");
//LoadData();
{
sql.Open("select * from T_Mark where WorkLine=" + txtworkline + " and Mark=" + txtmark);
if (sql.Rows.Count > 0)
{
int id = int.Parse(sql.Rows[0]["ID"].ToString());
double x = double.Parse(sql.Rows[0]["XPos"].ToString());
double y = double.Parse(sql.Rows[0]["YPos"].ToString());
int mark = int.Parse(sql.Rows[0]["Mark"].ToString());
int workline = int.Parse(sql.Rows[0]["WorkLine"].ToString());
bool isVirtual = bool.Parse(sql.Rows[0]["VirtualMark"].ToString());
UpdateEllipse(id, x, y, mark, workline, isVirtual);
}
}
}
}
///
/// 删除记录
///
///
///
private void DeleteRecord_Click(object sender, RoutedEventArgs e)
{
if (id > 0)
{
int i = sql.Open("delete from T_Mark where ID=" + id.ToString());
if (i >= 0)
{
MessageBox.Show("删除记录成功!");
//LoadData();
{
DeleteEllipse(id);
}
}
sql.Close();
}
}
///
/// 删除全部记录
///
///
///
private void DeleteAll_Click(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("确认要删除此全部地标?", "警告", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
int i = sql.Open("Truncate Table T_Mark");
if (i >= 0)
{
MessageBox.Show("删除记录成功!");
sql.Open("Truncate Table T_Line");
sql.Open("Truncate Table T_Traffic");
/*
sql.Open("DELETE FROM T_Line");
sql.Open("DELETE FROM T_Traffic");*/
LoadData();
}
}
}
///
/// 表格选择不同行消息触发
///
///
///
private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataRowView selectItem = dataGrid1.SelectedItem as DataRowView;
if (selectItem != null)
{
id = Convert.ToInt16(selectItem["ID"].ToString().Trim());
tbWorkLine.Text = selectItem["WorkLine"].ToString().Trim();
tbMark.Text = selectItem["Mark"].ToString().Trim();
tbXPos.Text = selectItem["XPos"].ToString().Trim();
tbYPos.Text = selectItem["YPos"].ToString().Trim();
if (Convert.ToBoolean(selectItem["VirtualMark"]))
{
rbIsVirtual.IsChecked = true;
}
else
{
rbNotVirtual.IsChecked = true;
}
canvas.Children.Remove(SelectedMark);
Canvas.SetLeft(SelectedMark, Convert.ToInt16(selectItem["XPos"]) - SelectedMark.Width / 2);
Canvas.SetTop(SelectedMark, Convert.ToInt16(selectItem["YPos"]) - SelectedMark.Width / 2);
canvas.Children.Add(SelectedMark);
}
else
{
tbWorkLine.Text = "";
tbMark.Text = "";
tbXPos.Text = "";
tbYPos.Text = "";
}
}
///
/// 快速添加
///
///
///
private void btnQuickAdd_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(tbWorkLine.Text.Trim()))
{
MessageBox.Show("请输入要添加的生产区号。");
return;
}
IsQuickAdd = true;
tbMark.IsEnabled = false;
tbXPos.IsEnabled = false;
tbYPos.IsEnabled = false;
rbNotVirtual.IsChecked = true;
sql.Open("Select Max(Mark) As MaxValue from T_Mark where WorkLine=" + tbWorkLine.Text.Trim());
if (sql.Rows.Count <= 0)
{
MessageBox.Show("不存在此生产区号,请重新输入。");
return;
}
if (string.IsNullOrEmpty(sql.Rows[0]["MaxValue"].ToString()))
{
tbMark.Text = "1";
}
else
{
tbMark.Text = (Convert.ToUInt32(sql.Rows[0]["MaxValue"]) + 1).ToString();
}
}
bool MapZoomInOut = false;
Point lastpoint = new Point(0, 0);
Point OffsetPoint = new Point(0, 0);
///
/// 画布中鼠标移动消息
///
///
///
private void canvas_MouseMove(object sender, MouseEventArgs e)
{
if (IsQuickAdd || IsQuickGet)
{
Point point=Mouse.GetPosition(canvas);
tbXPos.Text = point.X.ToString("F2");
tbYPos.Text = point.Y.ToString("F2");
return;
}
if (MapZoomInOut)
{
Point newpoint = e.GetPosition(null);
canvas.Offset = new Point(lastpoint.X - newpoint.X, lastpoint.Y - newpoint.Y);
}
}
///
/// 画布中鼠标右键消息
///
///
///
private void Page_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
this.Cursor = Cursors.Arrow;
IsQuickAdd = false;
IsQuickGet = false;
tbMark.IsEnabled = true;
tbXPos.IsEnabled = true;
tbYPos.IsEnabled = true;
}
///
/// 快速添加
///
///
///
private void btnQuickGet_Click(object sender, RoutedEventArgs e)
{
IsQuickGet = true;
}
///
/// 画布中鼠标左键消息
///
///
///
private void canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (IsQuickGet)
{
IsQuickGet = false;
this.Cursor = Cursors.Arrow;
}
else if (IsQuickAdd)
{
string strworkline = tbWorkLine.Text.Trim();
if (string.IsNullOrEmpty(tbMark.Text.Trim()) || string.IsNullOrEmpty(strworkline))
{
MessageBox.Show("请输入生产区和地标号!");
return;
}
uint i = Convert.ToUInt32(tbMark.Text.Trim());
sql.Open("insert into T_Mark (WorkLine,Mark,XPos,YPos,VirtualMark) Values (@workline,@mark,@xpos,@ypos,@virtualmark)",
new SqlParameter[]{
new SqlParameter("workline",tbWorkLine.Text.Trim()),
new SqlParameter("mark",i.ToString()),
new SqlParameter("xpos",tbXPos.Text.Trim()),
new SqlParameter("ypos",tbYPos.Text.Trim()),
new SqlParameter("virtualmark", Convert.ToBoolean(rbIsVirtual.IsChecked)?"1":"0")
});
//LoadData();
{
sql.Open("select * from T_Mark where WorkLine=" + tbWorkLine.Text.Trim() + " and Mark=" + i.ToString());
if (sql.Rows.Count > 0)
{
int id = int.Parse(sql.Rows[0]["ID"].ToString());
double x = double.Parse(sql.Rows[0]["XPos"].ToString());
double y = double.Parse(sql.Rows[0]["YPos"].ToString());
int mark = int.Parse(sql.Rows[0]["Mark"].ToString());
int workline = int.Parse(sql.Rows[0]["WorkLine"].ToString());
bool isVirtual = bool.Parse(sql.Rows[0]["VirtualMark"].ToString());
AddEllipse(id, x, y, mark, workline, isVirtual);
}
}
tbMark.Text = (i + 1).ToString();
tbWorkLine.Text = strworkline;
}
else
{
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_MouseEnter(object sender, MouseEventArgs e)
{
if (IsQuickAdd || IsQuickGet)
{
this.Cursor = Cursors.Cross;
}
}
///
/// 鼠标移出画布消息
///
///
///
private void canvas_MouseLeave(object sender, MouseEventArgs e)
{
if (IsQuickAdd || IsQuickGet)
{
this.Cursor = Cursors.Arrow;
}
MapZoomInOut = false;
}
///
/// 鼠标左键弹起消息
///
///
///
private void canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (MapZoomInOut)
{
MapZoomInOut = false;
OffsetPoint = canvas.Offset;
}
if (!(IsQuickAdd || IsQuickGet))
{
this.Cursor = Cursors.Arrow;
}
}
///
/// 鼠标滚轮消息
///
///
///
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 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;
LoadData();
}
}
///
/// 虚拟点颜色设置
///
///
///
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;
LoadData();
}
}
///
/// 页面卸载消息
///
///
///
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.Save();
}
}
public class MarkInfo
{
public int m_id;
public int m_workline;
public int m_mark;
public double m_x;
public double m_y;
public bool m_isVirtual;
}
}