我正在使用将在 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/