我有一个WPF应用程序,它使用WindowsFormsHost控件来托管Windows.Forms的控件.
我试图实现MouseWheel事件 - 但似乎MouseWheel事件从未触发过.
这个问题有解决方法吗?
解决方法是使用事件MouseEnter.
假设您在WindowsFormHost中有一个winform标签
在XAML中
<WindowsFormsHost Height="100" Name="windowsFormsHost1" Width="200" />
Run Code Online (Sandbox Code Playgroud)
在C#中
System.Windows.Forms.Label label = new System.Windows.Forms.Label();
label.Text = "Hallo";`
label.MouseEnter += new EventHandler(label_MouseEnter);
label.MouseWheel += new System.Windows.Forms.MouseEventHandler(label_MouseWheel);
windowsFormsHost1.Child = label;
Run Code Online (Sandbox Code Playgroud)
.....
void label_MouseEnter(object sender, EventArgs e)
{
(sender as System.Windows.Forms.Label).Focus();
}
void label_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
(sender as System.Windows.Forms.Label).BackColor = System.Drawing.Color.Red;
}
Run Code Online (Sandbox Code Playgroud)
现在MouseWheel应该工作(标签改变颜色)