2012-03-21 62 views
2

我有一個使用WindowsFormsHost控件託管Windows.Forms控件的WPF應用程序。WindowsFormsHost中的MouseWheel事件

我試圖實現MouseWheel事件 - 但似乎MouseWheel事件從未解僱。

是否有解決此問題的方法?

+0

您是否在嘗試將鼠標轉過來之前首次嘗試對焦控件? – 2012-03-21 15:06:28

+0

我不明白?我應該在哪裏設置它?在c'tor?在WindowsFormsHost加載? - 你能提供一點代碼嗎? – 2012-03-21 15:36:30

回答

5

解決方法是使用事件MouseEnter。

假設你在WindowsFormHost

在XAML

<WindowsFormsHost Height="100" Name="windowsFormsHost1" Width="200" />

有一個winform標籤在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; 

.....

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; 
} 

現在MouseWheel應該工作(標籤應該改變顏色)

+0

非常感謝您的解決方案!這是幫助我:) – 2012-03-22 10:12:29

+0

幫助我也:)謝謝 – ilansch 2013-02-13 08:22:04

+0

在網絡上發現如此複雜的事情後,終於一個簡單而有效的解決方案!謝謝 – AllForum 2015-09-15 12:03:46