2008-10-16 2 views
3

부분적으로 만 보이는 항목을 클릭 할 때마다 현재 스크롤되는 WPF ListView가 있습니다. 컨트롤을 해당 항목을보기에서 스크롤하지 않게하려면 (부분적으로 보이는 항목 만 선택하는 대신) 어떻게 할 수 있습니까? 이 동작은이 컨트롤에서 끌기를 할 때 매우 성가시다.WPF ListView에서 어떻게 자동 스크롤을 방지 할 수 있습니까?

감사합니다.

추가 : 컨트롤이 완전히 보이지 않는 것으로 보이는 내용을 클릭했을 때 컨트롤 자체가 스크롤되지 않도록하는 솔루션을 찾고 있습니다. 흔히 이것은 약간의 픽셀로 이루어지며 스크롤은 필요하지 않습니다.

답변

5

목록 항목 클릭의 기본 동작은 BringIntoView()를 호출하기 때문에 항목이 스크롤됩니다. RequestBringIntoView 이벤트에 대한 이벤트 처리기를 추가하여 ListViewItems에서 ScrollViewer로 바뀌기 전에 catch 할 수 있습니다. 처리기에서 보낸 영역의 경계를 표시된 영역과 비교하여 스크롤 할 필요가 없다고 결정하면 이벤트의 처리 플래그를 true로 설정합니다.

+1

명확히하려면 PreviewMouseDown 이벤트를 사용하여이를 삼키십시오. –

1

현재 제가 진행 중이므로 시도 할 수는 없지만 CanContentScroll을 사용하여 재생하려고 시도했거나 ScrollViewer Overview on MSDN에서 제안한대로 패널에 스크롤 가능한 콘텐츠를 래핑 했습니까?

최악의 경우 ListViewItemsPanel을 해킹 된 ScrollViewer로 바꿀 수 있습니다 (예 : "퍼지"요소). RequestBringIntoView 이벤트를 캡처하여

관련 문제