none
??? RRS feed

答案

  • 因为目前已经是这样设计了,不过我昨天回答你的帖子的同时也将你的想法作为一个客户期望发送提交了。 至于是否会被采纳,我不能确定。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 Shi Xin 2012年7月4日 12:14
    2012年7月4日 5:26
    版主

全部回复

  • 可以触摸时为什么还要使用scrollbar?直接触摸滚动不是更方便?
    2012年7月2日 9:24
  • 类似于一些应用所提供的大滚动滑块,来方便触摸时候的滚动定位。

    在ScrollViewer的模板中加入一个部件,或者Page中加入一个部件,然后跟踪他的Pointer的事件,设计去响应触摸移动来滚动ScrollViewer。

            private void Rectangle_PointerMoved(object sender, PointerRoutedEventArgs e)
            {
                if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch)
                {
                    if (isPointerPressed)
                    {
                        Point currentpoint = e.GetCurrentPoint(sender as Rectangle).Position;
                        double offset = currentpoint.Y - startpoint.Y;
                        Canvas.SetTop(sender as Rectangle, Canvas.GetTop(sender as Rectangle) + offset);
                        scrollviewer.ScrollToVerticalOffset(scrollviewer.VerticalOffset + (scrollviewer.ExtentHeight / scrollviewer.ViewportHeight) * offset);
                    }
                }
                e.Handled = true;
            }
            Point startpoint;
            bool isPointerPressed = false;
            private void Rectangle_PointerPressed(object sender, PointerRoutedEventArgs e)
            {
                if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch)
                {
                    startpoint = e.GetCurrentPoint(sender as Rectangle).Position;
                    isPointerPressed = true;
                    (sender as Rectangle).CapturePointer(e.Pointer);
                }
                e.Handled = true;
            }
            private void Rectangle_PointerReleased(object sender, PointerRoutedEventArgs e)
            {
                if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch)
                {
                    isPointerPressed = false;
                    (sender as Rectangle).ReleasePointerCapture(e.Pointer);
                }
                e.Handled = true;
            }


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月3日 8:09
    版主
  • 因为目前已经是这样设计了,不过我昨天回答你的帖子的同时也将你的想法作为一个客户期望发送提交了。 至于是否会被采纳,我不能确定。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 Shi Xin 2012年7月4日 12:14
    2012年7月4日 5:26
    版主
  • 假如滚动的内容很多,可以配合使用Semantic Zoom控件,可以切换到总揽界面中进行快速定位。

    2012年7月5日 3:02
  • 放置一些按钮和类似于锚点的元素,让按钮点击可以快速滚动到锚点位置。

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月6日 6:18
    版主