停止使用Windows手机中的当前偏移滚动

时间:2013-08-08 09:58:22

标签: c# windows-phone-7 windows-phone-8

滚动查看器出现问题。 情形:

我有一个堆栈面板,里面有一个内容,从该内容的鼠标移动显示弹出窗口重新排列这些内容。

问题:当我试图处理该内容弹出窗口的鼠标移动时,还会滚动发生。

预期行为:处理鼠标移动时不应该滚动。

我试过"HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled“它运行正常但它将scrollviewer设置为初始位置,意味着水平偏移设置为零(”0“)

提前感谢。

1 个答案:

答案 0 :(得分:0)

根据我们的讨论,我认为最好的方法是存储一个类级布尔值,它将决定是否启用滚动。您必须根据您的需要进行设置(可能与您之前修改可见性的位置相同)。

下一步是在滚动查看器上设置一些事件和属性,以便您可以控制它是否滚动。您实际上只需要修改包含scrollviewer的页面的构造函数,并为ManipulationStarted事件创建一个处理程序。以下假设您的控件名为Scroll,并且当控件不应滚动时,变量locked设置为true:

public MainWindow()
      {
         InitializeComponent();
         Scroller.ManipulationStarted += new EventHandler<ManipulationStartedEventArgs>(scroller_ManipulationStarted);
         Scroller.ManipulationMode = ManipulationMode.Control; // Required
      }

      void scroller_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
      {
         if (locked)
         {
            e.Handled = true;
            e.Complete();
         }
      }