예제 #1
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.alt = ((Profil_TopoM.Alt)(target));
                return;

            case 2:
                this.parametrageL = ((System.Windows.Controls.Label)(target));
                return;

            case 3:
                this.altitude = ((System.Windows.Controls.TextBox)(target));

            #line 24 "..\..\Alt.xaml"
                this.altitude.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.altitude_TextChanged);

            #line default
            #line hidden

            #line 24 "..\..\Alt.xaml"
                this.altitude.PreviewTextInput += new System.Windows.Input.TextCompositionEventHandler(this.altitude_PreviewTextInput);

            #line default
            #line hidden
                return;

            case 4:
                this.sauvegarder = ((System.Windows.Controls.Button)(target));

            #line 33 "..\..\Alt.xaml"
                this.sauvegarder.Click += new System.Windows.RoutedEventHandler(this.sauvegarder_Click);

            #line default
            #line hidden
                return;
            }
            this._contentLoaded = true;
        }
예제 #2
0
        private void cnv_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (Ss == 0)
            {
                if (suppp == 1)
                {
                    suppp = 0;
                    sup   = 1;
                    int trouve = 0, l = 0;
                    int ok  = 0;
                    int cpt = 10;
                    while ((ok == 0) && (l < courbes.Count))
                    {
                        trouve = 0;
                        while ((ok == 0) && (trouve < courbes[l].nbPoints()))
                        {
                            if ((courbes[l].getpoints(trouve).X - cpt <= e.GetPosition(this).X) &&
                                (e.GetPosition(this).X <= courbes[l].getpoints(trouve).X + cpt) &&
                                (courbes[l].getpoints(trouve).Y - cpt <= e.GetPosition(this).Y) &&
                                (e.GetPosition(this).Y <= courbes[l].getpoints(trouve).Y + cpt))
                            {
                                ok = 1;
                            }
                            else
                            {
                                trouve++;
                            }
                        }
                        l++;
                    }
                    l = l - 1;
                    cnv.Children.Remove(courbes[l].getshownPts(trouve));
                    try { shownPts.Remove(shownPts[trouve]); } catch (Exception exp) { }
                    courbes[l].removeshownPts(courbes[l].getshownPts(trouve));
                    if (trouve > 0)
                    {
                        cnv.Children.Remove(courbes[l].getlignes(trouve - 1)); courbes[l].removeligne(courbes[l].getlignes(trouve - 1));
                    }
                    Line newLine;
                    if (trouve == 0)
                    {
                        cnv.Children.Remove(courbes[l].getlignes(trouve));
                        courbes[l].removeligne(courbes[l].getlignes(trouve));
                    }
                    if (((trouve - 1) >= 0) && ((trouve + 1) < courbes[l].nbPoints()))
                    {
                        cnv.Children.Remove(courbes[l].getlignes(trouve - 1));
                        newLine = new Line
                        {
                            X1 = courbes[l].getpoints(trouve - 1).X,
                            Y1 = courbes[l].getpoints(trouve - 1).Y,
                            X2 = courbes[l].getpoints(trouve + 1).X,
                            Y2 = courbes[l].getpoints(trouve + 1).Y
                        };
                        if ((courbes[l].getaltitude() <= 0))
                        {
                            newLine.Stroke = Brushes.Blue;
                        }
                        if ((courbes[l].getaltitude() > 0) && (courbes[l].getaltitude() <= 50))
                        {
                            newLine.Stroke = Brushes.SkyBlue;
                        }
                        if ((courbes[l].getaltitude() > 50) && (courbes[l].getaltitude() <= 100))
                        {
                            newLine.Stroke = Brushes.AliceBlue;
                        }
                        if ((courbes[l].getaltitude() > 100) && (courbes[l].getaltitude() <= 200))
                        {
                            newLine.Stroke = Brushes.Green;
                        }
                        if ((courbes[l].getaltitude() > 200) && (courbes[l].getaltitude() <= 400))
                        {
                            newLine.Stroke = Brushes.GreenYellow;
                        }
                        if ((courbes[l].getaltitude() > 400) && (courbes[l].getaltitude() <= 600))
                        {
                            newLine.Stroke = Brushes.Yellow;
                        }
                        if ((courbes[l].getaltitude() > 600) && (courbes[l].getaltitude() <= 800))
                        {
                            newLine.Stroke = Brushes.Orange;
                        }
                        if ((courbes[l].getaltitude() > 800) && (courbes[l].getaltitude() <= 1000))
                        {
                            newLine.Stroke = Brushes.OrangeRed;
                        }
                        if (courbes[l].getaltitude() > 1000)
                        {
                            newLine.Stroke = Brushes.Red;
                        }
                        newLine.StrokeThickness = 2;
                        cnv.Children.Add(newLine);

                        courbes[l].remplacer(newLine, trouve - 1);
                    }
                    courbes[l].removePoint(courbes[l].getpoints(trouve));
                }
                else
                {
                    base.OnMouseDown(e);
                    if (!lineStarted)
                    {
                        s           = 0;
                        u           = 0;
                        v           = 0;
                        lineStarted = true;
                        c           = new Courbe();
                        courbes.Add(c);
                        mousePoint1 = e.GetPosition(this);
                        Points.Add(mousePoint1);
                        courbes.Last().setpoints(mousePoint1, s); s++;
                        Ellipse ell = new Ellipse();
                        ell.Width  = 7;
                        ell.Height = 7;
                        ell.Fill   = Brushes.SkyBlue;
                        ell.Stroke = Brushes.Transparent;
                        Canvas.SetLeft(ell, mousePoint1.X - 5 / 2);
                        Canvas.SetTop(ell, mousePoint1.Y - 10 / 2);
                        shownPts.Add(ell);
                        courbes.Last().setshownPts(ell, u); u++;
                        cnv.Children.Add(ell);
                        int    ex    = 0;
                        double altit = 0;
                        while (ex == 0)
                        {
                            try
                            {
                                do
                                {
                                    Alt alt = new Alt();
                                    alt.ShowDialog();
                                    altit = Double.Parse(alt.altitude.Text);
                                    if (altit >= min1 && altit <= max1)
                                    {
                                        if (altit % equi1 == 0 || altit == max1 || altit == min1)
                                        {
                                            courbes.Last().setaltitude(altit);
                                            ex = 1;
                                        }
                                        else
                                        {
                                            MessageBox.Show($"L'altitude doit être multiplie de l'équidistance :{equi1} ");
                                        }
                                    }
                                    else
                                    {
                                        MessageBox.Show($"L'altitude doit être comprise entre {min1} et {max1}");
                                    }
                                } while (altit < min1 || altit > max1);
                            }
                            catch (Exception exp)
                            {
                                MessageBox.Show("Veuillez entrer l'altitude de la courbe", "Erreur");
                                ex = 0;
                            }
                        }
                    }
                    else
                    {
                        Point mousePoint2 = e.GetPosition(this);
                        if (sup == 1)
                        {
                            mousePoint1 = courbes.Last().getpoints(courbes.Last().nbPoints() - 1); sup = 0;
                        }
                        Line newLine = new Line {
                            X1 = mousePoint1.X, Y1 = mousePoint1.Y, X2 = mousePoint2.X, Y2 = mousePoint2.Y
                        };
                        ToolTip t = new ToolTip();
                        t.Content       = courbes.Last().getaltitude();
                        t.Background    = Brushes.AliceBlue;
                        newLine.ToolTip = t;
                        if ((courbes.Last().getaltitude() <= 0))
                        {
                            newLine.Stroke = Brushes.Blue;
                        }
                        if ((courbes.Last().getaltitude() > 0) && (courbes.Last().getaltitude() <= 50))
                        {
                            newLine.Stroke = Brushes.SkyBlue;
                        }
                        if ((courbes.Last().getaltitude() > 50) && (courbes.Last().getaltitude() <= 100))
                        {
                            newLine.Stroke = Brushes.AliceBlue;
                        }
                        if ((courbes.Last().getaltitude() > 100) && (courbes.Last().getaltitude() <= 200))
                        {
                            newLine.Stroke = Brushes.Green;
                        }
                        if ((courbes.Last().getaltitude() > 200) && (courbes.Last().getaltitude() <= 400))
                        {
                            newLine.Stroke = Brushes.GreenYellow;
                        }
                        if ((courbes.Last().getaltitude() > 400) && (courbes.Last().getaltitude() <= 600))
                        {
                            newLine.Stroke = Brushes.Yellow;
                        }
                        if ((courbes.Last().getaltitude() > 600) && (courbes.Last().getaltitude() <= 800))
                        {
                            newLine.Stroke = Brushes.Orange;
                        }
                        if ((courbes.Last().getaltitude() > 800) && (courbes.Last().getaltitude() <= 1000))
                        {
                            newLine.Stroke = Brushes.OrangeRed;
                        }
                        if (courbes.Last().getaltitude() > 1000)
                        {
                            newLine.Stroke = Brushes.Red;
                        }
                        newLine.StrokeThickness = 2;
                        lignes.Add(newLine);
                        courbes.Last().setlignes(newLine, v); v++;
                        cnv.Children.Add(newLine);
                        mousePoint1 = e.GetPosition(this);
                        Points.Add(mousePoint1);
                        courbes.Last().setpoints(mousePoint1, s); s++;
                        Ellipse ell = new Ellipse();
                        ell.Width  = 7;
                        ell.Height = 7;
                        ell.Fill   = Brushes.SkyBlue;
                        ell.Stroke = Brushes.Transparent;
                        Canvas.SetLeft(ell, mousePoint1.X - 5 / 2);
                        Canvas.SetTop(ell, mousePoint1.Y - 10 / 2);
                        shownPts.Add(ell);
                        courbes.Last().setshownPts(ell, u); u++;
                        cnv.Children.Add(ell);
                        if (k == 1)
                        {
                            this.lineStarted = false; k = 0;
                        }
                    }
                    this.InvalidateVisual();
                }
            }
            else
            {
                if (Fin < 2)
                {
                    base.OnMouseDown(e);
                    if (!lineStarted0)
                    {
                        lineStarted0 = true;
                        mousePoint   = e.GetPosition(this);
                    }
                    else
                    {
                        Point mousePoint2 = e.GetPosition(this);
                        Line  newLine0    = new Line {
                            X1 = mousePoint.X, Y1 = mousePoint.Y, X2 = mousePoint2.X, Y2 = mousePoint2.Y
                        };
                        newLine0.Stroke          = Brushes.Black;
                        newLine0.StrokeThickness = 2;
                        cnv.Children.Add(newLine0);
                        this.lineStarted0 = false;
                    }
                    this.InvalidateVisual();
                    Fin++;
                }
            }
        }