如何覆盖 WPF C# 中的内置事件处理程序
how to override built in event handler in WPF c#
在我的项目中,我想覆盖在 WPF 中构建的 Touchup 事件处理程序。我不知道如何覆盖此事件处理程序以供我自己使用。那可能吗?有人可以举一些例子,我没有得到一些参考或例子。
有可能。
假设您要覆盖 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
}
但是,相同 class 的每个元素将表现相同。所以当你想定义一个新的自定义时这真的很有用 class
您可以创建自定义控件并覆盖事件。请参考我为 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);
}
}
在我的项目中,我想覆盖在 WPF 中构建的 Touchup 事件处理程序。我不知道如何覆盖此事件处理程序以供我自己使用。那可能吗?有人可以举一些例子,我没有得到一些参考或例子。
有可能。
假设您要覆盖 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
}
但是,相同 class 的每个元素将表现相同。所以当你想定义一个新的自定义时这真的很有用 class
您可以创建自定义控件并覆盖事件。请参考我为 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);
}
}