Ho un Forms.DataVisualization.Charting.Chart in un WindowsFormsHost. Non riesco a ottenere il grafico per ricevere gli eventi della rotellina del mouse. I clic stanno funzionando, se provo con un Forms.TextBox funziona anche la rotellina del mouse. La rotellina del mouse funziona anche se utilizzo il grafico in un'app di moduli "nativi".WIndows Forms Chart in WindowsFormsHost non riceve la rotellina del mouse?
Quindi, ciò che rende il problema è la combinazione del grafico di forme in un formHost.
Ecco una semplice applicazione verry per replicare il problema:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="TextBlock1" Grid.Column="1" />
<WindowsFormsHost Name="WindowsFormsHost1" Grid.Column="0"/>
</Grid>
e il codice sottostante:
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";
}
posso ricevere tutti i clic e la rotellina del mouse da WPF, ma nessuna ruota da forme. Ho provato anche l'ascoltatore di ruota delle forme, senza successo.
Qualche idea? Jon Skeet?
Grazie per la tua spiegazione, ma che non mi aiuta molto in solfing il problema. Suppongo di dover eseguire manualmente gli eventi, ma non so come. Ho anche provato a catturare la rotella del mouse in WPF per inviare i miei comandi ai moduli, ma non sono in grado di catturare la ruota in WPF ...puoi fornire snippet di codice o idee su come superare effettivamente il problema? –