2015-09-17 3 views
0

Это кажется очень простым и понятным, но я не могу заставить его работать.Добавить вертикальную линию на событие MouseDown

У меня есть линейная диаграмма, где я заполняю данные посредством привязки к списку.

Я хочу создать команду, в которой добавляет вертикальную линию, когда пользователь нажимает левую кнопку мыши. Я хотел бы иметь возможность сделать это в ViewModel, но код тоже будет работать.

Кроме того, я хотел бы установить предел одной вертикальной линии на граф. Поэтому, когда пользователь нажимает кнопку, и есть уже вертикальная линия, она должна удалить старую и добавить новую в новую позицию.

ответ

2

Самого простой способ сделать это, чтобы добавить обработчик событий:

YourControl.Click += (sender, args) => 
{ 
    // Your code here 
}; 

Надеется, что это помогает

+0

@ lucas.mdo можете ли вы отметить это как ответ, если это правильно – kb9

0

Я пришел сюда, чтобы ответить на мой собственный вопрос, и нашел ответ Константина, чтобы иметь ту же идею, мой подход , Я оставлю все, чтобы показать весь код.

model.MouseDown += (s, e) => 
    { 
     if (e.ChangedButton == OxyMouseButton.Left) 
     { 
      //Remove any existing Marker 
      while (plotView.Model.Series.Where(x => x.Title == "Marker Line").Count() > 0) 
      { 
       var oldmarker = plotView.Model.Series.Where(x => x.Title == "Marker Line").FirstOrDefault(); 
       plotView.Model.Series.Remove(oldmarker); 
      } 

      // Add a point to the line series. 
      marker.Points.Add(marker.InverseTransform(new ScreenPoint(e.Position.X, model.DefaultYAxis.ScreenMin.Y))); 
      marker.Points.Add(marker.InverseTransform(new ScreenPoint(e.Position.X, model.DefaultYAxis.ScreenMax.Y))); 

      //Add the marker (vertical line) 
      plotView.Model.Series.Add(marker); 
      model.InvalidatePlot(false); 
      e.Handled = true; 
     } 
     e.Handled = false; 
    }; 

Я до сих пор есть некоторые исправления, чтобы сделать (как автомасштабирование маркер), но это так близко, как я получил до сих пор.

Смежные вопросы