作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在开发一个 WPF 4.5 应用程序,它将在带有触摸屏显示器的 Windows 8 计算机上运行。
我们在 the directions on the MSDN 之后禁用了对 RealTimeStylus 的支持,因为我们有一些 View 需要通过 WM_TOUCH 支持多点触控。
问题是禁用 RealTimeStylus 支持似乎也禁用了用户使用触摸滚动 ScrollViewer 的能力——通常用户可以用手指在 ScrollViewer 周围平移,但如果禁用 RealTimeStylus 支持,似乎不可能做到这一点。 ScrollViewer 的 PanningMode 设置为“Both”。
是否可以在 WPF 应用程序中组合这些东西,或者它们是相互排斥的?
最佳答案
另一种选择是在内容周围添加箭头按钮。我们已经在触摸屏信息亭上使用了这一点。这需要更多的工作,但可以制作成自定义控件。我拥有的唯一代码支持垂直滚动。
添加水平滚动也应该很容易。在下面的代码中,滚动条上方和下方有两个按钮,分别称为 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();
}
关于wpf - 在禁用 RealTimeStylus 的情况下,在 WPF 应用程序中触摸滚动 ScrollViewer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254920/
我们正在开发一个 WPF 4.5 应用程序,它将在带有触摸屏显示器的 Windows 8 计算机上运行。 我们在 the directions on the MSDN 之后禁用了对 RealTimeS
我是一名优秀的程序员,十分优秀!