我在 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 的轮侦听器,但没有成功。
有任何想法吗?乔恩斯基特?