2010-04-28 123 views
0

我有一個Silverlight 4自定義控件,基本上是包裝在ScrollViewer中的幾個Canvas元素。用戶可以設置屬性以確定在使用鼠標滾輪時是否滾動或縮放。在自定義控件的MouseWheel事件中,我檢查是否要滾動或縮放。如果縮放,我確定增量並修改自定義控件的縮放級別(然後爲我處理縮放代碼)。MouseWheel:滾動與縮放

問題是,直到ScrollViewer的垂直滾動條的當前位置位於滾動條的頂部或底部,縮放纔會開始。一旦他們,然後變焦完美的作品。

有沒有人有任何建議,我可以如何防止完全滾動,以便我只能縮放(當用戶想要縮放,即)?

謝謝!

+0

爲了進一步加深奧祕,我看到控件的MouseWheel事件甚至在滾動條達到最大或最小高度後纔會觸發。 ScrollViewer控件也一樣。我想知道這是否是Silverlight 4的新行爲。我沒有在SL3中看到這一點。 – beaudetious 2010-04-28 15:22:22

+0

應該有一個徽章來回答你自己的問題。我以驚人的規律來做到這一點。 – beaudetious 2010-04-28 15:30:44

回答

0

看起來像我的孩子元素之一是hogging MouseWheel事件。我通過向每個子元素的MouseWheel事件以及父控件的MouseWheel事件添加Debug.WriteLine語句來追蹤這一點。

所以,我不能責怪SL4。就我自己。 :)