2010-04-28 65 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。就我自己。 :)