public void Filter() { try { _selectRoad = new DataRoad { SelectbeginDate = BeginDate.ToString(), SelectendDate = EndDate.ToString() }; var startstop = new ReadStartStop(_selectRoad.SelectbeginDate, _selectRoad.SelectendDate); _startStops = startstop.GetMassurm3(); Get(); } catch (Exception) { MessageBox.Show(@"Выберите дату", @"Ошибка выбора даты", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } }
public MainWindow() { InitializeComponent(); _tempsize = DensityScrollViewer.ContentHorizontalOffset; Closing += (s, e) => ViewModelLocator.Cleanup(); Messenger.Default.Register <DataRoad>(this, "ShowInfo", message => { Info = message; }); Messenger.Default.Register <float>(this, "ShowInfoDistance", message => { Distance = message; }); Messenger.Default.Register <ObservableCollection <Graphics> >(this, "ShowGeneralGraff", message => GeneralGraff.DrawGraphic(message, collor = true)); var timer = new System.Windows.Threading.DispatcherTimer { Interval = new TimeSpan(0, 0, 1), IsEnabled = true }; timer.Tick += (o, t) => { TimeBlock.Text = " " + DateTime.Now.ToLongTimeString() + "\n" + DateTime.Now.ToLongDateString(); }; timer.Start(); Messenger.Default.Register <List <List <object> > >(this, "GreatGraphic", message => { LineSeries LS; AreaSeries AS; ColumnSeries CL; List <byte> CountGener; List <float> Distance; List <float> Layer123; List <double> Plotnost; List <Graphics> dataValues; LinearAxis linerAxx; LinearAxis linerAxy; Setter setter; Style style; Style legendStyle; Setter legendSetterw; Setter legendSetterl; AreaDataPoint areaDataPoint; int max; Control control; LineDataPoint lineDataPoint; Setter setterpoint; switch (_greatGraphicName) { case "CountChart": CountGener = new List <byte>(); Distance = new List <float>(); foreach (var count in message[0]) { CountGener.Add(Convert.ToByte(count)); } foreach (var distance in message[1]) { Distance.Add(Convert.ToSingle(distance)); } dataValues = new List <Graphics>(); for (var i = 0; i < CountGener.Count - 1; i++) { var graph = new Graphics(); graph.CountLayer = CountGener[i]; graph.Distance = Distance[i]; dataValues.Add(graph); } setter = new Setter(); setter.Property = BackgroundProperty; setter.Value = Brushes.Black; style = new Style(); var columnDataPoint = new ColumnDataPoint(); style.TargetType = columnDataPoint.GetType(); style.Setters.Add(setter); CL = new ColumnSeries { ItemsSource = dataValues, DependentValuePath = "CountLayer", IndependentValuePath = "Distance" }; CL.DataPointStyle = style; linerAxx = new LinearAxis(); linerAxy = new LinearAxis(); linerAxx.Orientation = AxisOrientation.X; linerAxy.Orientation = AxisOrientation.Y; linerAxy.ShowGridLines = true; linerAxy.Minimum = 0; linerAxy.Maximum = 4; linerAxx.Title = "Расстояние, [м]"; chart = new Chart() { Background = new SolidColorBrush(Color.FromRgb(3, 94, 129)), Title = "Количество слоёв", }; legendSetterw = new Setter(); legendSetterl = new Setter(); legendStyle = new Style(); control = new Control(); legendSetterw.Property = WidthProperty; legendSetterw.Value = (double)0; legendSetterl.Property = HeightProperty; legendSetterl.Value = (double)0; legendStyle.TargetType = control.GetType(); legendStyle.Setters.Add(legendSetterl); legendStyle.Setters.Add(legendSetterw); chart.LegendStyle = legendStyle; chart.Axes.Add(linerAxx); chart.Axes.Add(linerAxy); chart.MouseLeftButtonDown += MouseLeftButtonDownGrid; chart.Series.Add(CL); LayoutRoot.Children.Add(chart); break; case "ChartLayer3": Layer123 = new List <float>(); Distance = new List <float>(); foreach (var count in message[0]) { Layer123.Add(Convert.ToByte(count)); } foreach (var distance in message[1]) { Distance.Add(Convert.ToSingle(distance)); } dataValues = new List <Graphics>(); max = Convert.ToInt16(Layer123[0]); for (var i = 0; i < Layer123.Count - 1; i++) { var graph = new Graphics(); graph.Layer3 = Layer123[i]; graph.Distance = Distance[i]; dataValues.Add(graph); if (Layer123[i] > max) { max = Convert.ToInt16(Layer123[i]); } } linerAxx = new LinearAxis(); linerAxx.Orientation = AxisOrientation.X; linerAxx.ShowGridLines = true; linerAxx.Title = "Расстояние, [м]"; linerAxy = new LinearAxis(); linerAxy.Orientation = AxisOrientation.Y; linerAxy.ShowGridLines = true; linerAxy.Title = "Толщина, [см]"; linerAxy.Minimum = 0; linerAxy.Maximum = max + 2; chart = new Chart() { Background = new SolidColorBrush(Color.FromRgb(3, 94, 129)), Title = "Толщина слоя №1", }; setter = new Setter(); setterpoint = new Setter(); setterpoint.Property = OpacityProperty; setterpoint.Value = (double)0; setter.Property = BackgroundProperty; setter.Value = Brushes.DodgerBlue; style = new Style(); areaDataPoint = new AreaDataPoint(); style.TargetType = areaDataPoint.GetType(); style.Setters.Add(setterpoint); style.Setters.Add(setter); AS = new AreaSeries { ItemsSource = dataValues, DependentValuePath = "Layer3", IndependentValuePath = "Distance", }; AS.DataPointStyle = style; legendSetterw = new Setter(); legendSetterl = new Setter(); legendStyle = new Style(); control = new Control(); legendSetterw.Property = WidthProperty; legendSetterw.Value = (double)0; legendSetterl.Property = HeightProperty; legendSetterl.Value = (double)0; legendStyle.TargetType = control.GetType(); legendStyle.Setters.Add(legendSetterl); legendStyle.Setters.Add(legendSetterw); chart.LegendStyle = legendStyle; chart.Axes.Add(linerAxx); chart.Axes.Add(linerAxy); chart.MouseLeftButtonDown += MouseLeftButtonDownGrid; chart.Series.Add(AS); LayoutRoot.Children.Add(chart); break; case "ChartLayer2": Layer123 = new List <float>(); Distance = new List <float>(); foreach (var count in message[0]) { Layer123.Add(Convert.ToByte(count)); } foreach (var distance in message[1]) { Distance.Add(Convert.ToSingle(distance)); } dataValues = new List <Graphics>(); max = Convert.ToInt16(Layer123[0]); for (var i = 0; i < Layer123.Count - 1; i++) { var graph = new Graphics(); graph.Layer2 = Layer123[i]; graph.Distance = Distance[i]; dataValues.Add(graph); if (Layer123[i] > max) { max = Convert.ToInt16(Layer123[i]); } } linerAxx = new LinearAxis(); linerAxx.Orientation = AxisOrientation.X; linerAxx.ShowGridLines = true; linerAxx.Title = "Расстояние, [м]"; linerAxy = new LinearAxis(); linerAxy.Orientation = AxisOrientation.Y; linerAxy.ShowGridLines = true; linerAxy.Title = "Толщина, [см]"; linerAxy.Minimum = 0; linerAxy.Maximum = max + 2; chart = new Chart() { Background = new SolidColorBrush(Color.FromRgb(3, 94, 129)), Title = "Толщина слоя №2", }; setter = new Setter(); setterpoint = new Setter(); setterpoint.Property = OpacityProperty; setterpoint.Value = (double)0; setter.Property = BackgroundProperty; setter.Value = Brushes.DarkRed; style = new Style(); areaDataPoint = new AreaDataPoint(); style.TargetType = areaDataPoint.GetType(); style.Setters.Add(setter); style.Setters.Add(setterpoint); AS = new AreaSeries { ItemsSource = dataValues, DependentValuePath = "Layer2", IndependentValuePath = "Distance" }; AS.DataPointStyle = style; legendSetterw = new Setter(); legendSetterl = new Setter(); legendStyle = new Style(); control = new Control(); legendSetterw.Property = WidthProperty; legendSetterw.Value = (double)0; legendSetterl.Property = HeightProperty; legendSetterl.Value = (double)0; legendStyle.TargetType = control.GetType(); legendStyle.Setters.Add(legendSetterl); legendStyle.Setters.Add(legendSetterw); chart.LegendStyle = legendStyle; chart.Axes.Add(linerAxx); chart.Axes.Add(linerAxy); chart.MouseLeftButtonDown += MouseLeftButtonDownGrid; chart.Series.Add(AS); LayoutRoot.Children.Add(chart); break; case "ChartLayer1": Layer123 = new List <float>(); Distance = new List <float>(); foreach (var count in message[0]) { Layer123.Add(Convert.ToByte(count)); } foreach (var distance in message[1]) { Distance.Add(Convert.ToSingle(distance)); } dataValues = new List <Graphics>(); max = Convert.ToInt16(Layer123[0]); for (var i = 0; i < Layer123.Count - 1; i++) { var graph = new Graphics(); graph.Layer1 = Layer123[i]; graph.Distance = Distance[i]; dataValues.Add(graph); if (Layer123[i] > max) { max = Convert.ToInt16(Layer123[i]); } } linerAxx = new LinearAxis(); linerAxx.Orientation = AxisOrientation.X; linerAxx.ShowGridLines = true; linerAxx.Title = "Расстояние, [м]"; linerAxy = new LinearAxis(); linerAxy.Orientation = AxisOrientation.Y; linerAxy.ShowGridLines = true; linerAxy.Title = "Толщина, [см]"; linerAxy.Minimum = 0; linerAxy.Maximum = max + 2; setter = new Setter(); setterpoint = new Setter(); setterpoint.Property = OpacityProperty; setterpoint.Value = (double)0; setter.Property = BackgroundProperty; setter.Value = Brushes.OliveDrab; style = new Style(); areaDataPoint = new AreaDataPoint(); style.TargetType = areaDataPoint.GetType(); style.Setters.Add(setter); style.Setters.Add(setterpoint); AS = new AreaSeries { ItemsSource = dataValues, DependentValuePath = "Layer1", IndependentValuePath = "Distance" }; AS.DataPointStyle = style; chart = new Chart() { Background = new SolidColorBrush(Color.FromRgb(3, 94, 129)), Title = "Толщина слоя №3", }; legendSetterw = new Setter(); legendSetterl = new Setter(); legendStyle = new Style(); control = new Control(); legendSetterw.Property = WidthProperty; legendSetterw.Value = (double)0; legendSetterl.Property = HeightProperty; legendSetterl.Value = (double)0; legendStyle.TargetType = control.GetType(); legendStyle.Setters.Add(legendSetterl); legendStyle.Setters.Add(legendSetterw); chart.LegendStyle = legendStyle; chart.Axes.Add(linerAxx); chart.Axes.Add(linerAxy); chart.MouseLeftButtonDown += MouseLeftButtonDownGrid; chart.Series.Add(AS); LayoutRoot.Children.Add(chart); break; case "ChartAll": var Layer1 = new List <float>(); var Layer2 = new List <float>(); var Layer3 = new List <float>(); Distance = new List <float>(); foreach (var count in message[0]) { Layer1.Add(Convert.ToByte(count)); } foreach (var distance in message[1]) { Distance.Add(Convert.ToSingle(distance)); } foreach (var count in message[2]) { Layer2.Add(Convert.ToByte(count)); } foreach (var count in message[3]) { Layer3.Add(Convert.ToByte(count)); } dataValues = new List <Graphics>(); max = Convert.ToInt16(Layer3[0]); for (var i = 0; i < Layer1.Count - 1; i++) { var graph = new Graphics(); graph.Layer3 = Layer3[i]; graph.Layer2 = Layer2[i]; graph.Layer1 = Layer1[i]; graph.Distance = Distance[i]; dataValues.Add(graph); if (Layer3[i] > max) { max = Convert.ToInt16(Layer3[i]); } } linerAxx = new LinearAxis(); linerAxx.Orientation = AxisOrientation.X; linerAxx.ShowGridLines = true; linerAxx.Title = "Расстояние, [м]"; linerAxy = new LinearAxis(); linerAxy.Orientation = AxisOrientation.Y; linerAxy.ShowGridLines = true; linerAxy.Title = "Толщина, [см]"; linerAxy.Minimum = 0; linerAxy.Maximum = max + 2; //// var setter1 = new Setter(); var setterpoint1 = new Setter(); setterpoint1.Property = OpacityProperty; setterpoint1.Value = (double)0; setter1.Property = BackgroundProperty; setter1.Value = Brushes.OliveDrab; var style1 = new Style(); var areaDataPoint1 = new AreaDataPoint(); style1.TargetType = areaDataPoint1.GetType(); style1.Setters.Add(setter1); style1.Setters.Add(setterpoint1); var ser1 = new AreaSeries { ItemsSource = dataValues, DependentValuePath = "Layer1", IndependentValuePath = "Distance", Title = "Слой №3" }; ser1.DataPointStyle = style1; /// var setter2 = new Setter(); var setterpoint2 = new Setter(); setterpoint2.Property = OpacityProperty; setterpoint2.Value = (double)0; setter2.Property = BackgroundProperty; setter2.Value = Brushes.DarkRed; var style2 = new Style(); var areaDataPoint2 = new AreaDataPoint(); style2.TargetType = areaDataPoint2.GetType(); style2.Setters.Add(setter2); style2.Setters.Add(setterpoint2); var ser2 = new AreaSeries { ItemsSource = dataValues, DependentValuePath = "Layer2", IndependentValuePath = "Distance", Title = "Слой №2" }; ser2.DataPointStyle = style2; /// var setter3 = new Setter(); var setterpoint3 = new Setter(); setterpoint3.Property = OpacityProperty; setterpoint3.Value = (double)0; setter3.Property = BackgroundProperty; setter3.Value = Brushes.DodgerBlue; var style3 = new Style(); var areaDataPoint3 = new AreaDataPoint(); style3.TargetType = areaDataPoint3.GetType(); style3.Setters.Add(setter3); style3.Setters.Add(setterpoint3); var ser3 = new AreaSeries { ItemsSource = dataValues, DependentValuePath = "Layer3", IndependentValuePath = "Distance", Title = "Слой №1" }; ser3.DataPointStyle = style3; chart = new Chart() { Background = new SolidColorBrush(Color.FromRgb(3, 94, 129)), Title = "Толщина слоёв", }; var setterlegendcollor = new Setter(); var setterlegendborder = new Setter(); setterlegendcollor.Property = BackgroundProperty; setterlegendcollor.Value = new SolidColorBrush(Color.FromRgb(3, 94, 129)); setterlegendborder.Property = BorderBrushProperty; setterlegendborder.Value = new SolidColorBrush(Color.FromRgb(3, 94, 129)); legendStyle = new Style(); control = new Control(); legendStyle.TargetType = control.GetType(); legendStyle.Setters.Add(setterlegendcollor); legendStyle.Setters.Add(setterlegendborder); chart.LegendStyle = legendStyle; chart.Axes.Add(linerAxx); chart.Axes.Add(linerAxy); chart.MouseLeftButtonDown += MouseLeftButtonDownGrid; chart.Series.Add(ser3); chart.Series.Add(ser2); chart.Series.Add(ser1); LayoutRoot.Children.Add(chart); break; case "Plotnost": Plotnost = new List <double>(); Distance = new List <float>(); foreach (var count in message[0]) { Plotnost.Add(Convert.ToByte(count)); } foreach (var distance in message[1]) { Distance.Add(Convert.ToSingle(distance)); } dataValues = new List <Graphics>(); max = Convert.ToInt16(Plotnost[0]); for (var i = 0; i < Plotnost.Count - 1; i++) { var graph = new Graphics(); graph.IntensityN1 = Plotnost[i]; graph.Distance = Distance[i]; dataValues.Add(graph); if (Plotnost[i] > max) { max = Convert.ToInt16(Plotnost[i]); } } linerAxx = new LinearAxis(); linerAxx.Orientation = AxisOrientation.X; linerAxx.ShowGridLines = true; linerAxx.Title = "Расстояние, [м]"; linerAxy = new LinearAxis(); linerAxy.Orientation = AxisOrientation.Y; linerAxy.ShowGridLines = true; linerAxy.Title = "[кг/м^3]"; linerAxy.Minimum = 0; linerAxy.Maximum = max + 2; setter = new Setter(); setterpoint = new Setter(); setterpoint.Property = OpacityProperty; setterpoint.Value = (double)0; setter.Property = BackgroundProperty; setter.Value = Brushes.OliveDrab; style = new Style(); lineDataPoint = new LineDataPoint(); style.TargetType = lineDataPoint.GetType(); style.Setters.Add(setter); style.Setters.Add(setterpoint); LS = new LineSeries() { ItemsSource = dataValues, DependentValuePath = "IntensityN1", IndependentValuePath = "Distance" }; LS.DataPointStyle = style; chart = new Chart() { Background = new SolidColorBrush(Color.FromRgb(3, 94, 129)), Title = "Плотность", }; legendSetterw = new Setter(); legendSetterl = new Setter(); legendStyle = new Style(); control = new Control(); legendSetterw.Property = WidthProperty; legendSetterw.Value = (double)0; legendSetterl.Property = HeightProperty; legendSetterl.Value = (double)0; legendStyle.TargetType = control.GetType(); legendStyle.Setters.Add(legendSetterl); legendStyle.Setters.Add(legendSetterw); chart.LegendStyle = legendStyle; chart.Axes.Add(linerAxx); chart.Axes.Add(linerAxy); chart.MouseLeftButtonDown += MouseLeftButtonDownGrid; chart.Series.Add(LS); LayoutRoot.Children.Add(chart); break; case "GeneralGraff": CountGener = new List <byte>(); Distance = new List <float>(); foreach (var count in message[0]) { CountGener.Add(Convert.ToByte(count)); } foreach (var distance in message[1]) { Distance.Add(Convert.ToSingle(distance)); } var dataValues1 = new ObservableCollection <Graphics>(); for (var i = 0; i < CountGener.Count - 1; i++) { var graph = new Graphics(); graph.GeneralState = CountGener[i]; graph.Distance = Distance[i]; dataValues1.Add(graph); } Gridnorm = new Grid(); Gridd = new Graff(); Gridd.DrawGraphic(dataValues1, collor = false); Gridd.Width = 1111; Gridd.Height = 234; var text1 = new TextBlock(); var text2 = new TextBlock(); var collor1 = new TextBlock(); var collor2 = new TextBlock(); var collortext1 = new TextBlock(); var collortext2 = new TextBlock(); collor1.Background = Brushes.Red; collor2.Background = Brushes.Green; collor1.Width = 50; collor1.Height = 50; collor2.Width = 50; collor2.Height = 50; collor1.HorizontalAlignment = HorizontalAlignment.Left; collor1.VerticalAlignment = VerticalAlignment.Top; collor2.HorizontalAlignment = HorizontalAlignment.Left; collor2.VerticalAlignment = VerticalAlignment.Top; collor1.Margin = new Thickness(370, 650, 0, 0); collor2.Margin = new Thickness(690, 650, 0, 0); collortext1.Text = "- не соответствует"; collortext2.Text = "- соответствует"; collortext1.FontSize = 19; collortext2.FontSize = 19; collortext1.HorizontalAlignment = HorizontalAlignment.Left; collortext1.VerticalAlignment = VerticalAlignment.Top; collortext2.HorizontalAlignment = HorizontalAlignment.Left; collortext2.VerticalAlignment = VerticalAlignment.Top; collortext1.Margin = new Thickness(440, 657, 0, 0); collortext2.Margin = new Thickness(760, 657, 0, 0); text1.Text = "Общее состояние дорожного покрытия"; text2.Text = "Расстояние, [м]"; text2.FontStyle = FontStyles.Italic; text1.FontSize = 22; text2.FontSize = 19; text1.HorizontalAlignment = HorizontalAlignment.Left; text1.VerticalAlignment = VerticalAlignment.Top; text2.HorizontalAlignment = HorizontalAlignment.Left; text2.VerticalAlignment = VerticalAlignment.Top; text1.Margin = new Thickness(440, 350, 0, 0); text2.Margin = new Thickness(570, 530, 0, 0); Gridnorm.Children.Add(collortext1); Gridnorm.Children.Add(collortext2); Gridnorm.Children.Add(collor1); Gridnorm.Children.Add(collor2); Gridnorm.Children.Add(text1); Gridnorm.Children.Add(text2); Gridnorm.Children.Add(Gridd); Gridnorm.Background = new SolidColorBrush(Color.FromRgb(3, 94, 129)); LayoutRoot.Children.Add(Gridnorm); Gridnorm.MouseLeftButtonDown += MouseLeftButtonDownGrid1; Gridd.MouseLeftButtonDown += MouseLeftButtonDownGrid1; break; } }); }
public void SendMessageInfo(DataRoad infoRoad) { Messenger.Default.Send(infoRoad, "ShowInfo"); }
public void Get() { ListTime = new List <List <TimeStartStop> >(); var i = 1; while (_startStops.Count != i) { if (_startStops[i - 1].Value == _startStops[i].Value && _startStops.Count != (i + 1)) { _newmass.Add(_startStops[i - 1]); } else { _newmass.Add(_startStops[i - 1]); ListTime.Add(_newmass); _newmass = new List <TimeStartStop>(); } i++; } if (_startStops.Count == i) { if (_startStops[i - 2].Value == _startStops[i - 1].Value) { ListTime[ListTime.Count - 1].Add(_startStops[i - 1]); } else { _newmass.Add(_startStops[i - 1]); _listTime.Add(_newmass); } } ListListovnorm = new List <List <TimeStartStop> >(); foreach (var da in _listTime) { if (da[0].Value) { _listListovnorm.Add(da); } } _dataRoads = new List <DataRoad>(); var dataRoad = new DataRoad(); foreach (var datenorm in _listListovnorm) { var date = new ReadAllSelect(datenorm[0].Time, datenorm[1].Time); _startList.Add(datenorm[0].Time); _endList.Add(datenorm[datenorm.Count - 1].Time); dataRoad = new DataRoad { NumMess = date.GetMassurm()[0].NumMess, RoadName = date.GetMassurm()[0].RoadName, TimeStart = datenorm[0].Time, TimeStop = datenorm[datenorm.Count - 1].Time }; _dataRoads.Add(dataRoad); } NormList = new ObservableCollection <ObservableCollection <DataRoad> >(); var massname = new ObservableCollection <DataRoad>(); for (var j = 0; j < _dataRoads.Count; j++) { var flag = true; if (_normList.Count != 0) { for (var l = 0; l < _normList.Count; l++) { if (_normList[l][0].RoadName != _dataRoads[j].RoadName) { continue; } _normList[l].Add(_dataRoads[j]); flag = false; } if (!flag) { continue; } massname = new ObservableCollection <DataRoad> { _dataRoads[j] }; _normList.Add(massname); } else { massname.Add(_dataRoads[j]); _normList.Add(massname); } } RegulationDrop = true; }