WindowsFormsHost に Forms.DataVisualization.Charting.Chart があります。グラフがマウス ホイール イベントを受け取ることができません。Forms.TextBox を試してみると、マウスホイールも機能しています。「ネイティブ」フォーム アプリでグラフを使用すると、マウス ホイールも機能します。
したがって、問題を引き起こしているのは、formsHost でのフォーム チャートの組み合わせです。
問題を再現するための非常に単純なアプリケーションを次に示します。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="TextBlock1" Grid.Column="1" />
<WindowsFormsHost Name="WindowsFormsHost1" Grid.Column="0"/>
</Grid>
および背後にあるコード:
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";
}
wpf からすべてのクリックとマウス ホイールを受け取ることができますが、フォームからホイールを受け取ることはできません。formsHost の wheel リスナーも試してみましたが、成功しませんでした。
何か案は?ジョン・スキート?