我有TagVisualizer
覆盖整个屏幕。嵌套在里面的是全屏ScatterView
。我的ScatterViewItems
其中一个是UserControl
,其中列出了SurfaceTextBoxs
的n个数量。 UserControl
和ScatterViewItems
始终可见。
E.g。
<TagVisualizer Panel.ZIndex="1">
<TagVisualizer.Definitions>
...
<TagVisualizer.Definitions>
<ScatterView Panel.ZIndex="2">
<ScatterViewItem />
<ScatterViewItem />
<ScatterViewItem >
<UserControl />
</ScatterViewItem>
...
</ScatterView>
</TagVisualizer>
我遇到的问题是,当桌面上没有识别标签时,Touch输入正常工作,键盘弹出并正常运行。但是,当桌面上的标签被识别时,键盘不再聚焦在文本块上,并且不会对用户触摸输入作出反应。我认为分层内容zindex会解决这个问题,但我错了......
令人沮丧的是,我的代码适用于Surface输入模拟器工具,但不适用于设备本身。 (标记和触摸工具选项,而不是鼠标)。
我认为这背后的原因是由于Tag捕获鼠标上下文并且不会松开,默认的键盘功能不需要触摸输入而是单个鼠标事件。如何在SurfaceTextBox
- UserControl
内部 - 当识别标签时,如何使键盘工作?
我是WPF
的新手,这个问题让我头疼不已......我看过SDK示例,我找不到解决方案..我有什么蠢事或是一些简单的不做/错过的东西?
任何帮助都会受到赞赏:)
答案 0 :(得分:1)
在研究了有关Surface 2.0程序的键盘结构的更多信息后,再次按照购物车示例,您必须使用Surface 2.0键盘,而不是Tablet 2键盘(您可以在控制面板中打开/关闭键盘)。我认为两个键盘都可以运行相同,我犯了一个愚蠢的错误。不过。
Surface 2.0键盘接受触摸输入并与TagVisualizers
配合使用。这是因为键盘绑定到某些SurfaceTextBoxes
并且即使鼠标没有点击它也会触摸输入。
平板电脑窗口默认键盘不能与触摸输入一起使用,除非鼠标输入触摸它(当没有其他输入时,最后和当前活动触摸输入被提升为鼠标)。当没有指定过度键盘并且在控制面板中启用时,此键盘始终显示。使用TagVisualizers
时这很麻烦,因为没有鼠标/触摸输入但是有一个识别的标签..此标签会窃取联系人,直到您将其取下。
Surface 2.0键盘不存在此问题。当您使用Surface 2.0键盘进行开发时,Tablet键盘将会占据它的位置(烦人),直到您通过Surface Shell运行软件...
要开发程序并查看Surface 2.0键盘,您必须为Surface设置开发环境。例如。在三星SUR40等上开发
P.S。我相信这是正确的......我仍在研究这个问题,如果我找到解决这个问题的方法,我的答案会更新......
编辑:
要扩展此答案..您应该编写应用程序以使用Surface Shell,通过启动程序,您应该从可用应用程序的选择中启动应用程序和/或如果您正在编程,将shell设置为一种应用程序模式对于商店环境。