В моем проекте я хочу переопределить обработчик событий Touchup, встроенный в WPF. Я не знаю, как переопределить этот обработчик событий для собственного использования. Это возможно? Кто-то может привести несколько примеров, у меня нет ссылок или примеров по этому поводу.
как переопределить встроенный обработчик событий в WPF С#
Ответы (2)
Вы можете создать собственный элемент управления и переопределить события. обратитесь к приведенному ниже коду, который я пробовал для управления TextBox.
class TextBoxEx : TextBox
{
protected override void OnTouchUp(System.Windows.Input.TouchEventArgs e)
{
base.OnTouchUp(e);
}
protected override void OnTouchDown(System.Windows.Input.TouchEventArgs e)
{
base.OnTouchDown(e);
}
}
Возможно.
Допустим, вы хотите переопределить это событие TouchUp (полностью переопределить его). Вам нужно будет определить новую функцию для обработки этого. Что-то типа :
private void Custom_TouchUp(object sender, TouchEventArgs e)
{
// Do some stuff there
}
(Может это и не TouchEventArgs, я не пробовал, но похоже)
Затем в вашем xaml, в определении вашего объекта, вам нужно указать целевому объекту, что он должен использовать эту функцию. Если это поле со списком (например), у вас будет что-то вроде этого:
<Combobox [...] TouchUp=Custom_TouchUp>
<Eventual parameters>
</Combobox>
И вуаля! Ваш объект будет использовать вашу новую функцию.
Теперь, допустим, вы просто хотите немного изменить текущее событие, тогда вы можете просто переопределить функция OnTouchUp, которая будет вызываться при возникновении события. Что-то вроде этого должно делать:
public override void OnTouchUp()
{
base.OnTouchUp();
// Other stuffs
}
Но тогда все элементы одного и того же класса будут действовать одинаково. Так что это действительно полезно, когда вы хотите определить новый пользовательский класс