2013-01-16 2 views
0

비교적 적은 수의 항목으로 채워진 목록 상자가 있습니다. 항목이 화면에 맞지 않으므로 목록 상자가 자동으로 오른쪽에 수직 스크롤 막대를 가져옵니다. 스크롤 막대는 마우스 휠에 응답하지만 목록 상자 항목은 응답하지 않습니다. 항목을 마우스 휠에 응답 시키려면 어떻게합니까?목록 상자에서 마우스 휠을 잡을 때

미리 감사드립니다. --Nacho

+0

참조 http://stackoverflow.com/questions/2189053/disable-mouse-wheel-on -itemscontrol-in-wpf. 또한 http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer_methods를 참조하십시오. – ridoy

답변

0

당신이 목록 상자 이벤트를 마우스 휠에 응답하는 것을 방지하려면

는, 당신은 목록 상자 요소의 컨텍스트 내에서 마우스 휠 이벤트를 처리 할.

해당 핸들러에서 e.Handled = true를 설정하여 포함하는 목록 상자로 이벤트 버블 링을 중지 할 수 있습니다.

ListBoxItem 내의 포함 요소에이 명령문을 넣을 수도 있습니다.

0

이렇게하면 WPF 창에있는 목록 상자의 항목을 선택합니다. 마우스 휠을 돌리면 ListBox 항목이 선택됩니다. ListBox는이 전에 포커스를 얻고 첫 번째 항목이 이미 선택되었습니다. 목록 상자에 넣어위한 XAML 속성에서

private void ListBox1_MouseWheel(object sender, MouseWheelEventArgs e) 
{ 
    int cap = (ListBox1.Items.Count) - 1; 
    int place = ListBox1.SelectedIndex; 
    int incre = e.Delta/120; 
    place += incre; 
    if (place > cap) 
    { 
     place = 0; 
    } 
    if (place < 0) 
    { 
     place = cap; 
    } 
    ListBox1.SelectedIndex = place; 
    ListBox1.ScrollIntoView(itemNoresult1.SelectedItem); 
} 

: 클래스 파일 넣어에서

PreviewMouseWheel="ListBox1_MouseWheel"

관련 문제