public MainWindow()
 {
     InitializeMouseEventHandlers();
     InitializeComponent();
     EnableCanvasMouseEvents();
     modeDescriptionLabel.Content = _modeDescriptionMap[_currentMode];
     graph        = new UndirectedWeightedGraph <string>();
     _timer.Tick += (s, e) =>
     {
         graph.Tick();
     };
     _timer.Interval = new TimeSpan(0, 0, 0, 0, 10); // every 10ms
     _timer.Start();
     canvas.PreviewMouseDown += (s, e) =>
     {
         ResetAllStyles();
     };
 }