public Emulator() { InitializeComponent(); StationChooser stationChooser = new StationChooser(); /*Відразу будуємо лінію метро та розставляємо станції*/ MetroLine rightLine = new MetroLine(); MetroLine leftLine = new MetroLine(); mainCanvas.Children.Add(rightLine.draw((int)SystemParameters.PrimaryScreenHeight / 2 - 15)); mainCanvas.Children.Add(leftLine.draw((int)SystemParameters.PrimaryScreenHeight / 2 + 15)); // Ліва кінцева станція Depot leftDepot = stationChooser.FirstDepot; mainCanvas.Children.Add(leftDepot.draw()); Canvas.SetLeft(leftDepot.getRect(), 10); Canvas.SetTop(leftDepot.getRect(), (int)SystemParameters.PrimaryScreenHeight / 2 - 30); mainCanvas.Children.Add(leftDepot.getCaption("left")); Canvas.SetLeft(leftDepot.getCaption(), 10); Canvas.SetTop(leftDepot.getCaption(), (int)SystemParameters.PrimaryScreenHeight / 2 - 60 - leftDepot.CaptionHeight); // Права кінцева станція Depot rightDepot = stationChooser.SecondDepot; mainCanvas.Children.Add(rightDepot.draw()); Canvas.SetLeft(rightDepot.getRect(), (int)SystemParameters.PrimaryScreenWidth - 60); Canvas.SetTop(rightDepot.getRect(), (int)SystemParameters.PrimaryScreenHeight / 2 - 30); mainCanvas.Children.Add(rightDepot.getCaption("right")); Canvas.SetLeft(rightDepot.getCaption(), (int)SystemParameters.PrimaryScreenWidth - 100); Canvas.SetTop(rightDepot.getCaption(), (int)SystemParameters.PrimaryScreenHeight / 2 - 60 - rightDepot.CaptionHeight); //Розтравлення проміжних станцій double interval = (SystemParameters.PrimaryScreenWidth - 180) / (MainWindow.CountOfStations - 2); //Довжину лінії розділили на кількість станцій double top = (int)SystemParameters.PrimaryScreenHeight / 2 - 60; double left = 20 + interval; standStations = stationChooser.Stations; for (int i = 0; i < MainWindow.CountOfStations - 2; i++) { standStations[i].Left = left; standStations[i].Top = top; mainCanvas.Children.Add(standStations[i].draw()); Canvas.SetLeft(standStations[i].getRect(), left); Canvas.SetTop(standStations[i].getRect(), top); mainCanvas.Children.Add(standStations[i].getCaption()); Canvas.SetLeft(standStations[i].getCaption(), left - standStations[i].getCaption().Width / 2 + 15.6); Canvas.SetTop(standStations[i].getCaption(), top - 40); left += interval; } //Додаємо загальний годинник mainClock = new Clock(MainWindow.StartHour, 0, 0); mainClock.setLabelBigText(); allTimeLabel = mainClock.getLabel(); mainCanvas.Children.Add(allTimeLabel); Canvas.SetLeft(allTimeLabel, 1250); Canvas.SetTop(allTimeLabel, 50); }
public StationChooser() { try { StreamReader sr = new StreamReader(@"src\Stantion's.txt", System.Text.Encoding.Default); int countOfStations = MainWindow.CountOfStations; Random rand = new Random(DateTime.Now.Millisecond); int firstStation = rand.Next(20 - countOfStations); for (int i = 0; i < firstStation; i++) { sr.ReadLine(); // Пропускаємо станції, які не використовуватимемо } firstDepot = new Depot(sr.ReadLine()); for (int i = 1; i < countOfStations - 1; i++) { stations.Add(new StandartStation(sr.ReadLine())); } secondDepot = new Depot(sr.ReadLine()); } catch { return; } }