2011-07-18 38 views
2

我在MainWindow中定義了一個ListBox控件,並且它的IsManipulationEnabled屬性設置爲true。我有在MainWindow中定義的操縱事件(OnManipulationStarting,OnManipulationInertiaStarting和OnManipulationDelta)。這裏的目標是在Listbox控件上實現翻譯,更像翻轉功能。wpf4中的ListBox中的操作事件永遠不會被提出

但是,這些事件從未引發。我假設選拔事件反過來會吞噬這些事件。當我使用itemscontrol代替時,它工作正常。但是使用itemscontrol的問題是我沒有得到選擇狀態。另一種選擇是在原始觸摸上工作,但操作更容易。

爲什麼操作事件不會在Listbox上觸發?

在此先感謝!

回答

1

ItemsControl的默認模板不包含ScrollViewer,但ListBox不包含。當PanningMode是None以外的東西時,ScrollViewer處理這些事件。默認情況下,ScrollViewer將其幾個屬性(如PanningMode)綁定到其模板父級的屬性。嘗試在列表框上將附加的ScrollViewer.PanningMode屬性設置爲

<ListBox ScrollViewer.PanningMode="None" /> 
+0

如果我想要平移,該怎麼辦? :p – SandRock

+0

你想讓scrollviewer平移並仍然在較高的元素上獲取操縱事件嗎?那麼也許你會使用AddHandler鉤住事件並傳遞true來獲取Handled事件。或者,也可以在scrollviewer中的某個元素上掛鉤事件。 – AndrewS

相關問題