在我的项目中,我想重写在WPF中构建的Touchup事件处理程序。我不知道如何覆盖这个事件处理程序供我自己使用。那可能吗?有人可以提供一些例子,我没有得到一些参考或示例。
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
有可能。
假设您要覆盖this TouchUp event(完全覆盖它)。您需要定义一个新函数来处理这个问题。类似的东西:
private void Custom_TouchUp(object sender, TouchEventArgs e)
{
// Do some stuff there
}
(可能不是TouchEventArgs,我还没有尝试过,但看起来很像)
然后,在你的xaml中,在你的对象定义中,你需要指定它应该使用这个函数的目标对象。如果它是一个组合框(例如),你会有这样的东西:
<Combobox [...] TouchUp=Custom_TouchUp>
<Eventual parameters>
</Combobox>
瞧!您的对象将使用您的新功能。
现在,假设您只想更改当前事件的一小部分,然后您可以覆盖事件发生时将调用的the OnTouchUp function。这样的事情应该做:
public override void OnTouchUp()
{
base.OnTouchUp();
// Other stuffs
}
但是,同一类的每个元素都会起作用。因此,当您想要定义新的自定义类
时,这非常有用