我有這樣的情況,即我的C#WPF應用程序包含其元素爲擴展器的ListView。每個擴展器都包含一個帶有ListViewItems的ListView。這裏是一張圖片: 包含含有ListView的擴展器的ListView的滾動不起作用
在右邊你可以看到一個滾動條。而那個ScrollBar是我的問題。它得到了兩個問題:
使用鼠標滾輪在擴展列表時滾動條不工作。我的意思是從「Controller」到「FullInstallation」的區域。如果懸停在標題上(「所有測試」),ScrollBar會滾動。我認爲Expander裏的ListView默認有一個ScrollBar,它可以「竊取」MouseWheel事件。但是,我不知道該怎麼辦。
ScrollBar滾動擴展器項目而不是擴展器內容。我的意思是,這是不可能滾動一下,而是總是滾動至少1個擴展器項目。我希望滾動條滾動,以便可以看到例如「所有測試」擴展器的一半。
圖片顯示禁用的滾動條,但通過縮小窗口,滾動條被啓用。
我迄今爲止嘗試:
的ScrollViewer外的ListView外:這解決了問題1,但它意味着鼠標滾輪不會在所有的工作!這是因爲外部的ListView生成了自己的ScrollViewer(用Snoop來查找),它「竊取」了MouseWheel事件。
重定向所有所有控件的鼠標滾輪事件(ListView控件,擴展,ListViewItem的)到ScrollViewer中:我再次使用的ScrollViewer外的ListView之外,這一次我用我的所有控件的鼠標滾輪事件調用外部ScrollViewer的MouseWheel事件。這確實奏效,但是對於鼠標指針的某些位置,它沒有。例如,在兩個ListViewItems之間有一個小的1毫米空間,MouseWheel事件沒有捕獲。或者在最後一個Expander(「Short Tests」)之後的底部。在那裏我沒有得到任何事件。
我嘗試了更多的事情,但沒有得到任何進一步的。 有沒有人有一個想法如何解決這個問題?
最良好的祝願, 基督教
1號是解決方案!非常感謝!拯救了我的一天! – Christian 2011-03-31 14:49:50
你的第一個鏈接(在SO之外)已經死亡。 – 2017-03-09 17:46:38