2012-01-19 29 views
13

Tôi có một scrollviewer với một vài listbox trong đó. Vấn đề là nếu người dùng sử dụng con lăn chuột giữa để cuộn scrollviewer trong khi con chuột của họ trên một listview. Listview cuộn scrollviewer nội bộ của nó xuống phía dưới và sau đó tiếp tục nắm bắt chuột, ngăn cản scrollviewer chứa scrollinger.Listview bên trong scrollviewer ngăn scroll scroller scroll

Bất kỳ ý tưởng nào về cách xử lý việc này?

+0

Tôi gặp vấn đề tương tự. Có một cuộc thảo luận ở đây: http://social.msdn.microsoft.com/Forums/en-IE/wpf/thread/b440b2cb-26e0-4115-9858-5679c4e45e0a Tôi sẽ cho bạn biết nếu tôi giải quyết vấn đề. – Kos

Trả lời

4

Bạn đã thử tắt ListView'sScrollBars?

<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
      ScrollViewer.VerticalScrollBarVisibility="Disabled" /> 
+0

Tôi không thể làm điều đó bởi vì các lần xem danh sách có thể có nhiều mục hơn hiển thị. – ConditionRacer

+1

@ Justin984 Chẳng phải chúng trong một 'ScrollViewer' khác sao? – Rachel

+0

Bah, tôi sẽ vẽ một bức tranh nhỏ ascii, nhưng nó quá đau đớn. Các hộp danh sách đều có nhiều mục nhập. Ví dụ, hộp danh sách 1 có thể có 10 mục, yêu cầu cuộn hộp danh sách để xem. Nhưng có nhiều hộp danh sách, cùng với nhau, là quá lớn cho màn hình, vì vậy tôi có một scrollviewer bên ngoài để di chuyển các hộp danh sách vào xem. Điều đó có ý nghĩa? – ConditionRacer

30

Đó xảy ra vì ListView 's (ListBox' s, trên thực tế) Mẫu nội dung kết thúc tốt đẹp các mục của nó với một ScrollViewer của chính nó.

Cách đơn giản nhất là để vô hiệu hóa nó bằng cách thả riêng Template của bạn cho các bên ListView, một trong đó không tạo ra một ScrollViewer:

<ListView> 
     <ListView.Template> 
     <ControlTemplate> 
      <ItemsPresenter></ItemsPresenter> 
     </ControlTemplate> 
     </ListView.Template> 
     ... 
    </ListView> 

BTW cùng sẽ xảy ra nếu bạn có một ListView bên trong một ListView (đây là trường hợp của tôi).

+0

Điều này đã giúp tôi: http://stackoverflow.com/a/2189182/399317 – Kos

0

Nếu bạn quấn chế độ xem danh sách bên trong trong trình xem cuộn thì thao tác cuộn sẽ hoạt động.

<ListView ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled"> 
       <ListView> 
        <ListView.ItemTemplate> 
         <DataTemplate> 
         </DataTemplate> 
        </ListView.ItemTemplate> 
       </ListView> 
      </ScrollViewer> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
Các vấn đề liên quan