Tengo Forms.DataVisualization.Charting.Chart en WindowsFormsHost. No puedo obtener la tabla para recibir eventos de la rueda del mouse. Los clics están funcionando, si intento con un Forms.TextBox la rueda del mouse también funciona. La rueda del mouse también funciona si uso el gráfico en una aplicación de formularios "nativa".Gráfico de formas de ventana en WindowsFormsHost no recibe la rueda del mouse?
Entonces, lo que hace que el problema sea la combinación del gráfico de formularios en un formsHost.
Aquí es una sencilla aplicación con mucho encanto para replicar el problema:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="TextBlock1" Grid.Column="1" />
<WindowsFormsHost Name="WindowsFormsHost1" Grid.Column="0"/>
</Grid>
y el código subyacente:
public MainWindow()
{
InitializeComponent();
var chart = new Chart() { BackColor = System.Drawing.Color.Aquamarine};
WindowsFormsHost1.Child = chart;
chart.MouseDown += (a, b) => TextBlock1.Text += "FORMS click\r\n";
TextBlock1.MouseDown += (a, b) => TextBlock1.Text += "WPF click\r\n";
chart.MouseWheel += (a, b) => TextBlock1.Text += "FORMS wheel\r\n";
TextBlock1.MouseWheel += (a, b) => TextBlock1.Text += "WPF wheel\r\n";
}
puedo recibir todos los clics y la rueda del ratón de WPF, pero ninguna rueda de formas. Probé el oyente de la rueda de las formas, también, sin éxito.
¿Alguna idea? Jon Skeet?
Gracias por su explicación, pero eso no me ayuda mucho en solfing el tema. Supongo que necesito desviar los eventos manualmente, pero no sé cómo. También traté de capturar la rueda del mouse en WPF para enviar mis propios comandos a los formularios, pero tampoco puedo capturar la rueda en WPF ...¿Puede proporcionar fragmentos de código o ideas sobre cómo superar realmente el problema? –