在windows phone中使用当前偏移量停止滚动

本文关键字:偏移量 滚动 windows phone | 更新日期: 2023-09-27 18:26:47

我在滚动查看器中遇到问题。场景:

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

问题:当我试图处理鼠标移动的内容弹出显示和滚动发生。

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

我尝试过"HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled"它工作正常,但它将滚动查看器设置为其初始位置,意味着水平偏移设置为零("0")

提前谢谢。

在windows phone中使用当前偏移量停止滚动

根据我们的讨论,我认为最好的方法是存储一个类级布尔值,它将决定是否启用滚动。你必须根据自己的需要设置它(可能和你之前修改可见性的地方一样)。

下一步是在滚动查看器上设置一些事件和属性,以便控制它是否滚动。您实际上只需要修改包含滚动查看器的页面的构造函数,并为ManipulationStarted事件创建一个处理程序。以下假设您的控件名为Scroll,并且当控件不应滚动时,变量锁定设置为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();
         }
      }