2012-03-21 3 views
2

WindowsFormsHost 컨트롤을 사용하여 Windows.Forms 컨트롤을 호스팅하는 WPF 응용 프로그램이 있습니다.WindowsFormsHost의 MouseWheel 이벤트

MouseWheel 이벤트를 구현하려고 시도했지만 MouseWheel 이벤트가 실행되지 않은 것처럼 보입니다.

이 문제의 해결 방법이 있습니까?

+0

마우스 휠을 사용하기 전에 먼저 컨트롤을 집중 시키려고 했습니까? –

+0

나는 이해하지 못합니까? 나는 그것을 어디에 두어야합니까? c'tor에? WindowsFormsHost가로드 되었습니까? - 약간의 코드를 제공 할 수 있습니까? –

답변

5

해결 방법은 MouseEnter 이벤트를 사용하는 것입니다.

은 ..... 당신은 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; 

에서 XAML

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

에서 WindowsFormHost

에서의 WinForm 레이블이 가정

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

귀하의 솔루션에 많은 감사드립니다! 그것은 나를 도와줍니다 :) –

+0

도 도와 줬습니다 :) 감사합니다 – ilansch

+0

그물에 너무 복잡한 것들을 찾은 후 마침내 간단하고 효율적인 솔루션! 감사 – AllForum

0

한 가지 더 추가 할 것입니다 ... WindowsFormsHost의 하위 요소가 Windows.Forms 요소 인 경우이 링크가 도움이됩니다.

http://vastpark-svn.cvsdude.com/public/trunk/src/Sample.Client/WPFInputSource.cs

왜 메신저 게시 나는 해결책을 찾고 발견 .. 그래서 난이 미래에 도움이되는 사람이 될 거라고 생각하고 있습니다. 어쨌든 먼저 여기에 물어봐 줘서 고마워. ^^

관련 문제