Forms.UserContrl WindowsFormsHost 鼠标消息
WindowsFormsHost 上放一个Forms.UserControl如何使这个Forms.UserControl不接收鼠标消息,直接发给WindowsFormsHost,
或者Forms.UserControl接收鼠标消息,然后转发给WindowsFormsHost,但这时有个问题,如何把Forms.MouseEventArgs转成Input.MouseEventArgs
不胜感激 --------------------编程问答-------------------- WindowsFormsHost 是什么----是不是一个form
你可以把WindowsFormsHost 的对象传递给UserControl
如果在userControl中的mouseover的事件指向WindowsFormsHost 中对应的事件 --------------------编程问答-------------------- 楼上的方法需要解决下面这个问题
“如何把Forms.MouseEventArgs转成Input.MouseEventArgs ”
How?
--------------------编程问答-------------------- Forms.UserControl有什么消息预处理函数能使鼠标消息不被处理,直接发给父窗处理吗? --------------------编程问答--------------------
你这个Input是什么东西? --------------------编程问答-------------------- 关注+学习!!
帮你顶!!!! --------------------编程问答-------------------- System.Windows.Input.MouseEventArgs
System.Windows.Forms.MouseEventArgs --------------------编程问答-------------------- up --------------------编程问答-------------------- 你可以把WindowsFormsHost 的对象传递给UserControl
如果在userControl中的mouseover的事件指向WindowsFormsHost 中对应的事件
顶。 --------------------编程问答-------------------- System.Windows.Input.MouseEventArgs 和System.Windows.Forms.MouseEventArgs 转换的的问题如何解决? --------------------编程问答-------------------- 你试试下面这个方法:
private void OnMouseClick(object sender, Forms.MouseEventArgs e)
{
OnRaiseEvent(MouseClickEvent, new MouseButtonEventArgs(
InputManager.Current.PrimaryMouseDevice, 0, ToMouseButton(e.Button)));
}
private void OnRaiseEvent(RoutedEvent handler, MouseButtonEventArgs e)
{
e.RoutedEvent = handler;
RaiseEvent(e);
}
private MouseButton ToMouseButton(Forms.MouseButtons button)
{
switch (button)
{
case Forms.MouseButtons.Left:
return MouseButton.Left;
case Forms.MouseButtons.Right:
return MouseButton.Right;
case Forms.MouseButtons.Middle:
return MouseButton.Middle;
case Forms.MouseButtons.XButton1:
return MouseButton.XButton1;
case Forms.MouseButtons.XButton2:
return MouseButton.XButton2;
}
throw new InvalidOperationException();
}
补充:.NET技术 , C#