【问题标题】:Touch Scrolling ScrollViewer in WPF App with RealTimeStylus Disabled禁用 RealTimeStylus 的 WPF 应用程序中的触摸滚动 ScrollViewer
【发布时间】:2013-08-15 14:30:23
【问题描述】:

我们正在开发一个 WPF 4.5 应用程序,该应用程序将在带有触摸屏显示器的 Windows 8 计算机上运行。

我们在the directions on the MSDN 之后禁用了对 RealTimeStylus 的支持,因为我们有一些视图需要通过 WM_TOUCH 支持多点触控。

问题是禁用 RealTimeStylus 支持似乎也禁用了用户使用触摸滚动 ScrollViewer 的能力 - 通常用户可以用手指在 ScrollViewer 周围平移,但如果禁用 RealTimeStylus 支持,它似乎不可能做到这。 ScrollViewer 的 PanningMode 设置为“Both”。

是否可以在 WPF 应用程序中组合这些东西,或者它们是否相互排斥?

【问题讨论】:

    标签: wpf windows-8 scrollviewer touchscreen


    【解决方案1】:

    另一种选择是在内容周围添加箭头按钮。我们已经在触摸屏信息亭上使用了这一点,效果非常好。它的工作量更大,但可以制成自定义控件。我唯一的代码支持垂直滚动。

    添加水平滚动也应该很容易。在下面的代码中,滚动条的上方和下方有两个按钮,分别称为 Less 和 More。

        double Epsilon = .001;
    
        private void Scroller_ScrollChanged(object sender, ScrollChangedEventArgs e)
        {
            if ( Scroller.ScrollableHeight > 0 ) {
                Less.Visibility = Math.Abs(Scroller.VerticalOffset - 0) > Epsilon ? Visibility.Visible : Visibility.Hidden;
                More.Visibility = Scroller.VerticalOffset + Scroller.ViewportHeight < Scroller.ExtentHeight ? Visibility.Visible : Visibility.Hidden;
            } else {
                Less.Visibility = More.Visibility = Visibility.Hidden;
            }
    
            if (Scroller.ExtentHeight / Scroller.ViewportHeight > 2)
            {
                SearchPanel.Visibility = Visibility.Visible;
            }
        }
    
        private void Less_Click(object sender, RoutedEventArgs e)
        {
            Sounds.Click();
            Scroller.PageUp();
        }
    
        private void More_Click(object sender, RoutedEventArgs e)
        {
            Sounds.Click();
            Scroller.PageDown();
        }
    

    【讨论】:

      【解决方案2】:

      你可以试试 SurfaceScrollViewer 代替普通的 ScrollViewer。

      SurfaceScrollViewer

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-20
        • 1970-01-01
        相关资源
        最近更新 更多