founderedu1 发表于 2014-12-3 18:00:00

每次滚动条滚动行数控制

每次滚动条滚动行数现在是3行,客户要求每次滚动1行,如何设置?

iceman 发表于 2014-12-3 20:04:00

回复 1楼founderedu1的帖子

可以通过以下代码实现:

      public MainPage()
      {
            InitializeComponent();
            //gc1.mode
            gc1.TopRowChanged += gc1_TopRowChanged;
            
      }

      void gc1_TopRowChanged(object sender, GrapeCity.Windows.SpreadSheet.UI.ViewportEventArgs e)
      {
            int increasment =Math.Abs(e.NewIndex - e.OldIndex);
            this.gc1.GetViewportTopRow(0);
            if (increasment!=1)
            {
                if (e.NewIndex > e.OldIndex)
                {
                  gc1.SuspendEvent();
                  this.gc1.SetViewportTopRow(0, e.NewIndex - 2);
                  gc1.ResumeEvent();
                }
                else
                {
                  gc1.SuspendEvent();
                  this.gc1.SetViewportTopRow(0, e.NewIndex + 2);
                  gc1.ResumeEvent();
                }
            }
            
      }

以上代码还不完善,比如滚动到最顶部或最底部的时候,大体实现思路是这样,还需要你调整。

本身产品不具备这个功能,我会提交给产品组加入到需求列表中,看能否在以后的版本中添加。

founderedu1 发表于 2014-12-4 10:49:00

好吧,只能代码模拟了!

iceman 发表于 2014-12-4 18:36:00

回复 3楼founderedu1的帖子

是的,spread xaml 平台目前还没有开放这个接口。
页: [1]
查看完整版本: 每次滚动条滚动行数控制