需要手动触发控件xxx的MouseUp事件RaiseEvent(new RoutedEventArgs(xxx.MouseUp));这样不行,提示MouseUp只能在+=之前用,这点我都不太理解,+=那是对事件注册处理函数用的,和手动触发时间有何关系?
想了想改成RaiseEvent(new RoutedEventArgs(UIElement.MouseUpEvent, xxx));运行挂,提示RoutedEventArgs不能转换为MouseButtonEventArgs,纳闷了,这里哪里涉及后一个类型了

解决方案 »

  1.   

    写好move的代码,直接调用,类似调用click一样button1_Click(button1,null)
      

  2.   

    可以直接调用事件方法
    button1_MouseUp(null,null);
    或者将事件中的动作重构成公共调用的方法,然后调用
      

  3.   

    RaiseEvent里的参数用button的ClickEvent是毫无问题的。但实际中交互对象想灵活一些,不一定非得是button,没有click事件就想用MouseUp。要触发MouseUp,参数要怎么写
      

  4.   

    关键就是,实际逻辑中,控件XXX是动态取得的,所以不能硬编码方法,得用事件
      

  5.   

    似乎是wpf的。 不知道为啥这样写 也不会触发、、
    this.button1.RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left)
    {
        RoutedEvent = Button.MouseUpEvent
    });