我在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中的所有点击和鼠标滚轮事件,但是在Windows Forms中只能接收点击事件,无法接收鼠标滚轮事件。我尝试过FormsHost的滚轮监听器,但没有成功。
有什么想法吗?Jon Skeet?