Windows 10(表面)上的键盘Winforms
我的Winforms应用程序在平板电脑模式下的Windows 10的Surface Pro上运行. 没有附加物理键盘. 我启动了我的应用程序,当我击中文本框时,触摸键盘不会出现. (它是一个简单的Windows.forms.textbox控件)使用我的自定义控件,它从文本框继承也无法正常工作. 当我在Combobox中"单击"时,触摸键盘就到了前面.当我单击从Windows.forms.combobox继承的自定义Combobox中时,也会出现. 当我单击" Commobox"打开的触摸键盘后,我单击文本框时. 我该如何解决我的问题?我可以在控件中添加C#命令以强制触摸键盘的幻影吗? 我已经更改了设置"在不在平板电脑模式下时显示触摸键盘或手写面板,并且没有附加键盘,因为我在另一个线程中阅读了它,但没有任何更改. 感谢您的帮助. 解决方案 我建议在事件处理程序中建议以下代码: var progFiles = @"C:\Program Fil
12 2024-04-26
编程技术问答社区
带触摸的Windows 7上的WPF:隐藏软键盘(以及启用它的弹出图标)
我有一个WPF应用程序,由于硬件约束,必须在Windows 7标准嵌入式上运行.启用了该设备,我正在利用我正在构建应用程序的方式. 我遇到的一个问题是,当我使用文本框控件(老实说不是很频繁)时,当控件的焦点允许打开屏幕键盘时,用户会出现图标 - 此图标由WPF和/或OS提供,而不是我自己做的事情. 我希望能够以单个形式的级别或单个控制级别禁用此图标和关联的键盘,但是所有搜索返回结果都假设我想尝试启用此类功能和/或复制它. 任何人都可以建议我如何控制WPF应用程序中屏幕键盘上的Windows 7的可用性,以便我确实可以禁用它? 我还应该指出,硬件约束当前排除了升级到Windows 8、8.1或10的任何选项,因此请不要在您可能拥有的任何答案中考虑这一点. 谢谢. 解决方案 要禁用文本框的屏幕键盘图标,请在XAML中设置InputMethod.isInputMethodeNabled =" false". 尚未在任何其他级别上进行测试,但这解决了我
24 2024-04-26
编程技术问答社区
在Unity中注册UI上的触摸
如果我碰巧触摸了我的UI,我需要忽略一些funcitonation.但是,我正在努力检测我是否真的在触摸它. 我的UI利用了本机UI内部的UI.我的想法是简单地检查这些层,如果我触摸了该层上的任何内容,我将停止任何功能发生. 所以我写了这篇文章来测试它: void Update () { if (Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Began) { Ray ray = Camera.main.ScreenPointToRay( Input.GetTouch(0).position ); RaycastHit hit; if ( Physics.Raycast(ray, out hit, Mathf.Infinity, mask)) { Debug.Log("hit
8 2024-04-25
编程技术问答社区
MonoTouch/MonoDroid | 将原始触摸坐标转换为屏幕坐标
将原始触摸点转换为单触摸或单迪亚特的屏幕坐标的正确方法是什么?我的代码在模拟器上效果很好,但是这些点在设备上不准确.这是我到目前为止所拥有的: private void Initialize() { this.Touch += TouchView_Touch; } void TouchView_Touch(object sender, View.TouchEventArgs e) { e.ReturnValue = true; touchPoints.Add(e.Event.RawX); touchPoints.Add(e.Event.RawY); this.Invalidate(); } protected override void OnDraw(Android.Graphics.Canvas canvas) { b
10 2024-04-25
编程技术问答社区
Swipe Scroll在Fullscreen Winforms应用程序中显示桌面
使用该方法使用 winforms fullscreen问题在Windows 10上运行10时用于滚动的"滑动"触摸手势(例如,在Multiline Textbox上),并到达了一个极端的效果,其效果会使整个窗户沿滚动方向揭示桌面.对于全屏应用程序,这是不可取的.我如何摆脱效果? 最小示例: public partial class Form1 : Form { public Form1() { InitializeComponent(); FormBorderStyle = FormBorderStyle.None; WindowState = FormWindowState.Maximized; var tb = new TextBox() { Multiline = true, ScrollBars = ScrollBars.
12 2024-04-24
编程技术问答社区
WPF中的浮动自定义触摸控制
我正在尝试在WPF中创建一个可以接收触摸事件的浮动控件.我搜索了很多,我发现的浮动控制的唯一解决方案是弹出控制.问题:弹出控件无法接收触摸事件.而且由于我在弹出窗口内使用SurfaceListBox,所以我需要触摸事件.我试图通过以下内容使弹出窗口接收触摸事件: TouchExtensions.EnableSurfaceInput((HwndSource)HwndSource.FromVisual(this.selectionListPopup)); 但没有任何效果.有什么方法可以使弹出窗口获得触摸?还有其他可以使用的控制或方式吗? 我的最终目标是具有漂浮在其他控件上方的控件 - 这意味着它不会被其他控件夹住或遮盖. 这是我到目前为止使用的XAML:
12 2024-04-24
编程技术问答社区
如何在Xamarin中处理FlexLayout的触摸事件
所以我要构建一个应用程序,我应该在其中显示多个产品,因为我想显示不仅仅是一行的一个产品,所以我无法使用listView,所以我考虑使用flexlayout作为可约束的layout和使用这些物品源显示我的产品列表,这是成功的.因此,我想在flexlayout中显示的每个产品中添加触摸事件,以便我创建了一个新的行为,这是我使用的代码的链接: 确实有效,因此我可以使用命令.我的问题是我想获取点击的产品,而我不知道该怎么做?有没有人可以帮助我? 解决方案 如果您对XAML不利,这就是我的处理方式.
8 2024-04-23
编程技术问答社区
我如何使用线程来'tick'一个定时器被其他线程访问?
当用户做某事时(在这种情况下,触摸stackpanel)时,我需要开始某种计时器(可能是在WPF工作时,可能是dispatchertimer)时间,我将调用一种方法.您可能会猜到 - 这是实现双击功能. 我假设实现此目的的最佳方法是使用线程(即,每当再次触摸stackpanel时,可以通过主线程检查的子螺纹可以通过主线进行检查吗?) 谢谢, dan 解决方案 您无需启动另一个线程即可执行此操作. 只需在第一次点击发生时就可以使用时间戳.然后,您可以通过从当前时间减去这段时间来计算时间台: private DateTime _lastTap; public void TapHandler() { DateTime now = DateTime.UtcNow; TimeSpan span = now - lastTap; _lastTap = now; if (span
8 2024-04-23
编程技术问答社区
处理触摸和手势事件
我正在研究一个涉及来自连接到Windows 7机器的电容触摸面板的手势输入的GUI.操作系统已安装了平板电脑PC支持驱动程序,这些驱动程序应该是通信的唯一均值. 我的主要方法是使用Microsoft.ink.dll中引用的InkCollector类.它使我访问了足以实施我正在寻求的行为的系统园具事件. 现在的问题是Systemesture.Flick事件在整整一秒钟之后就非常缓慢地到达.我了解正在进行处理以识别轻弹,但这仍然使这个想法无法使用. 关于如何加快事物的任何想法? 我的初始化代码如下: public partial class Form1 : Form { public Form1() { InitializeComponent(); InkCollector inkCollector = new InkCollector(this);
16 2024-04-23
编程技术问答社区
C# Win Form: 检测最后一次互动(触摸)并显示确认框
Windows表单应用程序: 是否有一种方法可以检查设备(Microsoft Surface 55英寸触摸屏) 没有从用户那里收到任何互动(触摸),并且是否超过5分钟应显示确认框,询问您要继续还是退出.在这5分钟内,闪存文件或视频将运行.如果视频正在运行(我已经嵌入了 axwindowsmediaplayer 在我的获胜表格中),则应暂停它,然后显示确认框. 我想使用 c#代码在 Visual Studio 2013 Professional . 上实现这一目标. 我遇到了一些功能, threads : 我发现的选择之一是使用 getlastinputinfo()函数.但是,我不确定它是否适用于触摸交互.我没有Microsoft Surface设备要测试.来自MSDN的报价: 此功能对于输入空闲检测很有用.但是,getlastinputinfo并未在所有运行会议上提供全系统的用户输入信息.相反,GetLastInputInfo仅为调用该功能的会话提供特定于
8 2024-04-23
编程技术问答社区
刷卡器触摸事件-可单击但禁止拖动
我正在使用 swiper 3.4.2 用大拇指作为分页滑块.我需要在分页滑块上禁用拖放,但是要启用单击事件,以便可以通过单击"分页"滑块中的拇指来更改主滑块. var galleryThumbs = new Swiper('.gallery-thumbs', { spaceBetween: 0, slidesPerView: 'auto', shortSwipes: false, slideToClickedSlide: true, preventClicksPropagation: false, preventClicks: false }); 通过将simulateTouch设置为false,我也会放弃点击触摸事件. 解决方案 设置touchRatio: 0将禁用Drag Touch事件,并启用点击触摸事件 V4 更新 allowTouchMov
26 2024-04-22
编程技术问答社区
触摸设备上的 jQuery UI 滑块
我正在使用jQuery UI开发一个网站,并且我的网站上有几个元素在触摸屏设备上查看时似乎不兼容.它们不会造成任何错误,但行为不是应该的. 所讨论的元素是jQuery UI定义的滑块和rangesliders;在触摸屏上,它没有将触摸台捡起手柄和将手柄拖动到滑块上时,而是将整个网页滑到屏幕的侧面.如果您点击把手,然后点击滑块上的位置,它确实可以工作,但这是非常慢的,但不理想.有什么想法吗? 我尝试下载JQTouch插件,然后将.touch([...])连接到slider()和rangeslider()的所有调用,但这无效. 更新:我在JQuery UI网站上找到了此"补丁" 这说明它有助于在iPhone上的滑块,但是现在提出了另一个问题:我如何将此"补丁"纳入我的代码中?我是否只是在代码开头像插件一样包含它? 解决方案 这个库似乎提供了您要寻找的东西: https://github.com/furf/jquery-ui-ui-touch-punch-
26 2024-04-22
编程技术问答社区
在 swift for sprite kit 中,如何才能同时跟踪两个节点的触点?同时跟踪纹理?
我正在制作匹配游戏.在我的应用程序中,我想要一个功能,可以跟踪两个节点的触摸.当用户触摸节点时,以及用户触摸节点匹配后显示的纹理时;我不希望用户再与两个节点进行交互. 但是,如果用户触摸两个节点后显示的纹理不匹配.我希望用户触摸的两个节点在用户触摸节点之前重置其原始位置. 例如,假设用户触摸了名为"水果匹配card1"的节点,并且显示"苹果"的纹理,然后他们触摸名为"水果匹配卡2"的节点,并且还显示了"水果匹配卡2"苹果".由于,这两个节点显示出与匹配的相同纹理.我不希望用户能够与这些节点进行交互,因为他们单击了显示相同纹理的节点. 但是,假设用户触摸了名为"水果匹配卡1"的节点,并显示"苹果"纹理.然后他们触摸了名为"水果匹配卡3"的节点,并显示"葡萄"纹理.由于,这两个节点不显示相同的纹理,我希望这些节点在用户触摸它们之前将这些节点重置回原始位置. 关于我如何在应用程序中拥有这些功能的建议或帮助?基本上具有一个功能,该功能一次跟踪两个节点的触摸,并且还可以将节
16 2024-04-22
编程技术问答社区
如何检测 SKSpriteNode 是否已被触碰
我试图检测我的精灵节点是否已触摸,我不知道从哪里开始. let Pineapple = SKSpriteNode(imageNamed: "Pineappleimg") Pineapple.userInteractionEnabled = true Pineapple.position = CGPoint(x: CGRectGetMidX(self.frame) - 200, y: CGRectGetMidY(self.frame)); self.addChild(Pineapple) 解决方案 首先将SKSpriteNode的属性设置为字符串. pineapple.name = "pineapple" pineapple.userInteractionEnabled = false 然后在touchesBegan Scene 中的功能中 override func touchesBegan(touches: NSSet, withEvent event: UI
18 2024-04-22
编程技术问答社区
在winforms应用程序中检测各种触摸事件
我有一个带5个触摸点的触摸屏监视器.我想在一个新的Windows表单应用程序中进行一些触摸工作,但是我很难为此找到重新启动. 是否可以在Winforms应用程序中处理触摸事件?我也不只是在谈论窃听.我的意思是捏,滑动(两个手指刷),抓住,扭曲/旋转和变焦? 我们如何检测捏 解决方案 看看 wm_genture Message ,我认为您可以在这里获取一些信息,这也可能很好,并且可能是由于我无法对您的帖子发表评论,所以不要将其作为完整的答案.我可以帮助我! 其他解决方案 Microsoft提供的一组C#Interop库,可让您在Winforms中检测触摸和手势.它被称为" Windows 7 Multitouch .NET Interop示例库".旧的链接为在这里,但似乎已经死了.目前,它在其他解决方案 向Winforms添加手势支持 - 在此处解决: liew hon chin的论文: 1387_liewhonchin2011.pdf 'I
12 2024-04-21
编程技术问答社区
触摸事件未触发 C# WPF
我创建了一个订阅WPF触摸事件的程序.在过去的几个月中,一切都按预期的是,但是昨天没有任何触摸事件会开火.我尝试创建一个新的,简单的程序来测试触摸事件,但是它的作用相同,即使光标从鼠标箭头更改为触摸十字光线,所有触摸输入都将作为鼠标事件发送. . 我多次重新启动计算机并重新安装驱动程序,但似乎没有改变任何东西.我尝试使用不同的触摸屏品牌的不同驱动器,这些触摸屏也曾经工作,并且看到了完全相同的问题.使用触摸屏内置的测试工具,我可以看到触摸和多点触摸正在按照我的期望工作,并查看系统属性的笔和触摸部分确认计算机正在识别触摸屏. 编辑:我继续测试监视器,看来Multitouch在其他Windows程序(例如Paint)中工作.触摸似乎不仅在我的应用中工作. 其他人是否经历过这件事或有任何想法如何重新启用触摸事件? 解决方案 以某种方式将窗口转换为usercontrol,并在Winforms窗口内托管问题,并像以前一样触摸事件. 其他解决方案 听起来不像驱动程序问题
8 2024-04-21
编程技术问答社区
Windows Store应用程序。如何使ListView具有可扩展/可放大的ListItems?
我在C#Windows Store应用程序中有一个带有项目的列表视图(这是您所说的?我听说它们不再称为Metro应用了). 类似于 explinebablelistview 我想成为Android,我想成为能够点击ListItems (不是按钮),该ListItem可以扩展,点击扩展的ListItem 以使其崩溃,如果您点击另一个ListItem,则扩展的ListItem将崩溃,另一个将扩展. 在我的特殊情况下,我对ListItems的扩展和非扩展视图都有一个DataTemplate.我已经看到,Android的ExpanablElistView可以使用附加信息( expander 来自WPF的expander 与此相似的事情),而不是用较大的项目 ,但是在此中是否有一个共同的解决方案Windows Store应用程序? 如果不是,最接近的是什么? 喜欢以下图形,我想知道是否有一个可以以这种方式扩展ListItems的组件,或者如果不是这样,我拥有哪些选择: 解决
10 2024-04-21
编程技术问答社区
WPF无法从Mousedown活动获得接触位置
我在添加了.NET(v 4.0)之前写了一个WPF项目,因此仅处理鼠标事件.当用手指在触摸屏上测试项目时,我遇到了这个问题. 问题是,在第一次触摸中正确检索了位置(x,y),但是(x,y)值在随后的触摸中保持不变,无论我在哪里触摸,即使我触摸了图像,Mousedown事件被解雇,这使它更奇怪. 可以用.NET 3.0/3.5/4.0复制,在Win7/Win8上测试,两位均为64位.看来Mousedown事件是行为不端的事件,MouseUp效果很好. 更新: 这是一个长期历史的错误,MS尚未修复(即使在4.5中),因此,如果遇到相同的症状,则必须更新代码 - 从触摸事件中获得触摸位置,而不是鼠标事件.幸运的是,此错误并不是微妙的,因此只需要一会儿才能找到和修复. 代码复制问题: xaml:
14 2024-04-20
编程技术问答社区
捕捉多点触摸屏幕上的双击触感
我发布了另一个问题,即如何通过监视达阵活动之间的触摸之间的时间板来捕获双击,但这很大.有人知道在多点触摸屏幕上捕获双击的标准Microsoft方法/事件吗? 非常感谢, dan 解决方案 我检查了一下Tap位置和秒表的组合,它的工作原理! private readonly Stopwatch _doubleTapStopwatch = new Stopwatch(); private Point _lastTapLocation; public event EventHandler DoubleTouchDown; protected virtual void OnDoubleTouchDown() { if (DoubleTouchDown != null) DoubleTouchDown(this, EventArgs.Empty); } private bool IsDoubleTap(TouchEventArgs e) {
12 2024-04-20
编程技术问答社区