コード例 #1
0
        public WellView()
        {
            InitializeComponent();
            DataContextChanged += new DependencyPropertyChangedEventHandler(WellView_DataContextChanged);
            Loaded             += new RoutedEventHandler(WellView_Loaded);

            SelectedPoint.SetXMapping(var => dateAxis.ConvertToDouble(var.Time));
            SelectedPoint.SetYMapping(var => var.Value);

            ObsGraph.MouseLeftButtonDown += new MouseButtonEventHandler(g_MouseLeftButtonDown);

            ObsGraph.AddLineGraph(SelectedPoint, null, new CircleElementPointMarker {
                Size  = 10,
                Brush = Brushes.Red,
                Fill  = Brushes.Orange
            }
                                  , null);

            pens = new Pen[6];

            pens[0] = new Pen(Brushes.Black, 3);
            pens[1] = new Pen(Brushes.Red, 3);
            pens[2] = new Pen(Brushes.Blue, 3);
            pens[3] = new Pen(Brushes.Green, 3);
            pens[4] = new Pen(Brushes.Yellow, 3);
            pens[5] = new Pen(Brushes.Brown, 3);
        }
コード例 #2
0
        void WellView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (e.NewValue is WellViewModel)
            {
                SelectedPoint.Collection.Clear();

                foreach (var g in _obsGraphs)
                {
                    ObsGraph.Children.Remove(g);
                }
                _obsGraphs.Clear();

                foreach (var g in _extGraphs)
                {
                    PumpingGraph.Children.Remove(g);
                }
                _extGraphs.Clear();

                WellViewModel wm = (WellViewModel)e.NewValue;

                int Pencount = 0;
                foreach (var ts in wm.HeadObservations)
                {
                    ts.Value.SetXMapping(var => dateAxis.ConvertToDouble(var.Time));
                    ts.Value.SetYMapping(var => var.Value);
                    var g = ObsGraph.AddLineGraph(ts.Value, pens[Pencount], new PenDescription(ts.Key.ToString()));
                    _obsGraphs.Add(g);



                    Pencount++;
                    if (Pencount == pens.Count())
                    {
                        Pencount = 0;
                    }
                }

                Pencount = 0;
                foreach (var ts in wm.Extractions.Where(var => var.Item2.Count() > 0))
                {
                    EnumerableDataSource <Time.Core.TimestampValue> ds = new EnumerableDataSource <TimestampValue>(ts.Item2);
                    ds.SetXMapping(var => dateAxisExt.ConvertToDouble(var.Time));
                    ds.SetYMapping(var => var.Value);
                    var g = PumpingGraph.AddLineGraph(ds, pens[Pencount], new PenDescription(ts.Item1));
                    _extGraphs.Add(g);

                    Pencount++;
                    if (Pencount == pens.Count())
                    {
                        Pencount = 0;
                    }
                }
            }
            ZoomToTimeScale();
        }