我正在尝试制作这种扩展方法。在演员表上出现“无法将类型 T 转换为 MouseEventArgs”的错误。我不应该能够向上转换对象(因为MouseEventArgs : InputEventArgs
)?
如果您好奇,我将使用它在处理程序方法中使用基本 InputEventArgs 在鼠标和触摸事件之间共享事件处理程序。
public static class InputEventArgsExtensions
{
public static Point GetPosition<T>(this T e, IInputElement obj)
where T : InputEventArgs
{
if (e is MouseEventArgs)
return ((MouseEventArgs)e).GetPosition(obj);
else if (e is TouchEventArgs)
return ((TouchEventArgs)e).GetTouchPoint(obj).Position;
return new Point();
}
}