在我的项目中,我想重写WPF内置的Touchup事件处理程序。我不知道如何为自己的使用重写此事件处理程序。这是否可能?有人可以提供一些示例吗?我没有找到相关的参考或示例。
您可以创建自定义控件并覆盖事件。参考我为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
}
但是,同一类别的每个元素都会执行相同的操作。因此,当您想要定义新的自定义类时,这非常有用。