每当用户在我的程序正在其中运行的helix工具箱视图中放大或缩小时,我都希望运行自定义Camera类的特定方法。 此功能的主要功能是从事件中获取mouseargs,因此我可以按照与滚动刻度数成比例的方式调整摄影机。
我开始尝试:
public event PropertyChangedEventHandler PropertyChanged;
public virtual void onMouseWheeled(MouseDevice Mouse, int time,
MouseWheelEventArgs e) {
MouseWheel?.Invoke(this, new MouseWheelEventArgs(Mouse, time,
e.Delta)); }
//This next line goes in a MainWindow_Loaded method that gets called in the
//MainWindowConstructor
void MainWindow_Loaded(object sender, RoutedEventArgs e) {
view1.MouseWheel += new MouseWheelEventHandler(onMouseWheeled(Cursor,
Time.simTime, view1.MouseWheeledEventArgs)); }
但是在试图将onMouseWheeled方法添加到MouseWheelEventHandler时,如何确定如何将MouseWheelEventArgs对象传递到onMouseWheeled方法时遇到了很多麻烦。假设该句子从根本上来说并没有错,这不过是一厢情愿的想法。我要弄清楚的最后一件事是如何获取鼠标滚轮事件args,以便可以将其传递给方法。
然后我尝试了这个:
public event MouseWheelEventHandler MouseWheel;
public virtual void onMouseWheeled(object sender, MouseWheelEventArgs e)
{
Console.WriteLine(e.Delta);
}
//In Main Window Loaded method...
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
view1.MouseWheel += onMouseWheeled;
}
但是当我滚轮时我没有输出。我认为这可能确实有效,因为view1是我要将所有对象附加到的螺旋窗口,作为view1的子级。
基本上我的主要问题是:
调用实际上是做什么的?我只有运行此命令才能查看其是否正常运行,因为我一直使用的onPropertyChanged方法像这样运行Invoke命令。我实际上不确定我要去哪里。
处理程序如何工作?
如何调用事件args,以便我可以使用它们并将它们作为对象传递给其他方法?
谢谢您的时间。再次感谢您提供的所有建议和建议。
答案 0 :(得分:0)
尝试使用预览鼠标滚轮事件