2

Делаю Drag&Drop по мотивам этого ответа.

Есть CustomControl, который наследует от ToggleButton. Привязываю методы к событиям в конструкторе, но таким образом события не обрабатываются.

Как правильно сделать?

public class CustomControl: ToggleButton
{
    public CustomControl()
    {
        this.MouseLeftButtonDown += OnMouseDown;
        this.MouseLeftButtonUp += OnMouseUp;
    }

    void OnMouseDown(object sender, MouseButtonEventArgs e)
    {
     //...
    }

    void OnMouseUp(object sender, MouseButtonEventArgs e)
    {
     //...
    }
}
trydex
  • 3,742

1 Answers1

2
public class CustomControl : ToggleButton
{
      protected override void OnMouseDown(MouseButtonEventArgs e)
      {
          base.OnMouseDown(e);
      }

      protected override void OnMouseUp(MouseButtonEventArgs e)
      {
          base.OnMouseUp(e);
      }
}
Murad
  • 3,724
  • 1
    Так работает, спасибо! А можете объяснить для чего мы так делаем? – trydex Nov 15 '16 at 09:47
  • 1
    @maxwell Если мы наследуется от контрола чтоб расширить или поменять его поведения то правильнее переопределять нужные методы стандартного контрола через override и там уже писать логику вашего контрола. – Murad Nov 15 '16 at 13:16
  • Понял, спасибо! – trydex Nov 15 '16 at 13:20