c# - WPF 以编程方式为平板电脑启用文本框滚动/平移

标签 c# wpf scroll textbox tablet

我正在使用将在 Windows 平板电脑上使用的 WPF 应用程序。我遇到的问题是我无法通过按下并拖动内容来滚动浏览平板电脑上的大型多行文本框。但是,它仍然可以使用鼠标滚轮在桌面上滚动。

这个问题 ( Enable swipe scrolling on Textbox control in WPF Scrollviewer ) 似乎回答了我遇到的同样问题,但我需要以编程方式进行。这就是我为设置 TextBox 的平移模式所做的工作:

txtLongText.SetValue(ScrollViewer.PanningModeProperty, PanningMode.None);

我可以说这是有效的,因为现在禁用了单击和拖动文本选择,但内容仍然没有滚动。我还设置了外部 ScrollViewer 的平移模式:

popupScrollView.PanningMode = PanningMode.Both;

然后将 popupScrollView 对象设置为 Popup 中的内容。

我唯一能想到的是,是否还有其他更高的地方需要我设置平移模式?任何帮助,将不胜感激。谢谢。

最佳答案

我对触摸设备有同样的问题。我有一个棘手的方法来处理这类问题

你必须手动处理触摸事件 我写了一些代码来手动处理触摸事件

UIElement_OnTouchDown(object sender, TouchEventArgs e) 事件发生时,您可以通过 eventArgs.GetTouchPoint(this).Position.Y 保持触摸位置的位置。

之后,您可以通过观察位置变化来确定是否发生了滚动。

这是我的 sample gist ,我将这种方法用于触摸设备的相同问题

关于c# - WPF 以编程方式为平板电脑启用文本框滚动/平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328801/

相关文章:

wpf - 将焦点设置到 DataGrid 代码隐藏 WPF MVVM 中的第一个单元格

scroll - jquery simplemodal插件: popup that scroll with the page

javascript - 在滚动了这么多 div 之后锁定屏幕上的 div?

c# - MVC-4 在服务器端更改 ViewBag.Message?

c# - linq 查询表单

c# - 查找已将哪个事件处理程序分配给对象 WPF 上的事件

javascript - React 组件中的 Js div 滚动到底部

c# - Owin OAuth 提供者 "The entity type IdentityUser is not part of the model for the current context"

c# - 通过扩展方法调试

c# - WPF:如何与非事件窗口交互?