private void ellipseGeklickt(object sender, MouseButtonEventArgs e)
        {
            Haltestelle soebenAngeklickteHaltestelle = (Haltestelle)((Ellipse)sender).Tag;

            //MessageBox.Show(((Haltestelle)((Ellipse)sender).Tag).Ort);
            if (zuletztAngeklicktHaltestelle != null)
            {
                MessageBox.Show(GeoPunkt.BestimmeAbstand(soebenAngeklickteHaltestelle.Position, zuletztAngeklicktHaltestelle.Position).ToString());
            }
            zuletztAngeklicktHaltestelle = soebenAngeklickteHaltestelle;
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == true)
            {
                string   dateiname = ofd.FileName;
                string[] zeilen    = File.ReadAllLines(dateiname);
                haltestellen = new Haltestelle[zeilen.Length - 1];
                //for (int i = 1; i < 40; i++)
                for (int i = 1; i < zeilen.Length; i++)
                {
                    string[] teile  = zeilen[i].Split(';');
                    double   länge  = double.Parse(teile[5]);
                    double   breite = double.Parse(teile[6]);
                    haltestellen[i - 1] = new Haltestelle(teile[3], new GeoPunkt(länge, breite));
                }

                double minLänge  = haltestellen.Min(x => x.Position.Lon);
                double maxLänge  = haltestellen.Max(x => x.Position.Lon);
                double minBreite = haltestellen.Min(x => x.Position.Lat);
                double maxBreite = haltestellen.Max(x => x.Position.Lat);

                for (int d = 0; d < 2; d++)
                {
                    for (int i = 0; i < haltestellen.Length; i++)
                    {
                        if (d == 0 && !haltestellen[i].IstHbf || d == 1 && haltestellen[i].IstHbf)
                        {
                            Haltestelle h    = haltestellen[i];
                            Ellipse     elli = new Ellipse();
                            elli.Width      = 5.0;
                            elli.Height     = 5.0;
                            elli.Fill       = h.IstHbf ? Brushes.Red : Brushes.DarkBlue;
                            elli.ToolTip    = h.Ort;
                            elli.Tag        = h; //Mekt sich alles vom h
                            elli.MouseDown += ellipseGeklickt;

                            zeichenfläche.Children.Add(elli);

                            Canvas.SetLeft(elli, zeichenfläche.ActualWidth / (maxLänge - minLänge) * (h.Position.Lon - minLänge));
                            Canvas.SetBottom(elli, zeichenfläche.ActualHeight / (maxBreite - minBreite) * (h.Position.Lat - minBreite));
                        }
                    }
                }
                //for (int i = 0; i < haltestellen.Length; i++)
                //{
                //    if (haltestellen[i].IstHbf)
                //    {
                //        Ellipse elli = new Ellipse();
                //        elli.Width = 5.0;
                //        elli.Height = 5.0;
                //        elli.Fill = Brushes.Red;
                //        elli.ToolTip = haltestellen[i].Ort;

                //        zeichenfläche.Children.Add(elli);

                //        Canvas.SetLeft(elli, zeichenfläche.ActualWidth / (maxLänge - minLänge) * (haltestellen[i].Position.Lon - minLänge));
                //        Canvas.SetBottom(elli, zeichenfläche.ActualHeight / (maxBreite - minBreite) * (haltestellen[i].Position.Lat - minBreite));
                //    }
                //}
            }
        }