0

我有一个TagVisualizer覆盖整个屏幕。嵌套在里面的是一个全屏ScatterView。在我ScatterViewItems的其中一个UserControl里面列出了 n 个SurfaceTextBoxs. 和始终可见UserControlScatterViewItems

例如

<TagVisualizer Panel.ZIndex="1">
<TagVisualizer.Definitions>
...
<TagVisualizer.Definitions>

<ScatterView Panel.ZIndex="2">
<ScatterViewItem />
<ScatterViewItem />
<ScatterViewItem >
<UserControl />
</ScatterViewItem>
...
</ScatterView>
</TagVisualizer>

我遇到的问题是,当桌面上没有识别出标签时,触摸输入工作并且键盘弹出并正常工作。但是,当表格上的标签被识别时,键盘不再专注于文本块并且不会对用户触摸输入做出反应。我认为分层内容 zindex 可以解决这个问题,但我错了......

令人沮丧的是,我的代码适用于 Surface Input Simulator 工具,但不适用于设备本身。(标签和触摸工具选项,不是鼠标)。

  • 标签被精确切割,不会在桌子上显示为斑点/手指触摸。
  • 将内容从 scatterview 拖放到 librarybars 等都按预期工作。
  • 其他按钮和触摸元素都按预期工作
  • 每个标签的 Source 是 IsHitTestVisible=false 并且没有按钮等(只有一个 Ellipse 显示标签在哪里被识别)
  • 只有键盘功能没有按我想象的那样运行。

我相信这背后的原因是标签捕获了鼠标上下文并且不会放手,默认的键盘功能不需要触摸输入而是单个鼠标事件。当标签被识别时,我将如何让键盘在SurfaceTextBox- Inside a - 上工作?UserControl

我是新手WPF,这个问题让我有点头疼……我查看了 SDK 示例,但我找不到解决方案。我正在做一些愚蠢的事情还是没有做/错过了什么简单的事情?

任何帮助将不胜感激:)

4

1 回答 1

1

在研究了有关 Surface 2.0 程序的键盘结构的更多信息并再次按照购物车示例之后,您必须使用 Surface 2.0 键盘,而不是平板电脑(您可以在控制面板中打开/关闭的那个)。我犯了一个愚蠢的错误,以为两个键盘都可以操作相同……不。

Surface 2.0 键盘接受触摸输入并与TagVisualizers. 这是由于将键盘绑定到某个特定位置SurfaceTextBoxes,即使鼠标没有点击它,它也会接受触摸输入。

平板电脑窗口默认键盘不适用于触摸输入,除非鼠标输入已触摸它(当没有其他输入时,最后一个和当前活动的触摸输入被提升为鼠标)。此键盘始终在未指定键盘且在控制面板中启用时显示。TagVisualizers当没有鼠标/触摸输入但有一个可识别的标签时,这很乏味。这个标签会窃取联系人,直到你把它取下来。

Surface 2.0 键盘不存在此问题。当您使用 Surface 2.0 键盘进行开发时,平板电脑键盘将取代它(令人讨厌),直到您通过 Surface Shell 运行您的软件......

要开发您的程序并查看 Surface 2.0 键盘,您必须有一个用于 Surface 的开发环境并设置为 Surface。例如在三星 SUR40 等上开发

  1. http://msdn.microsoft.com/en-us/library/ff727875.aspx在 Windows 模式下测试
  2. http://msdn.microsoft.com/en-us/library/ff727840.aspx表面测试/调试
  3. http://msdn.microsoft.com/en-us/library/ff727766.aspx Surface 键盘

Ps 我相信这是正确的......我仍在研究这个问题,如果我找到解决这个问题的方法,我会更新我的答案......

编辑:

To extend this answer.. You should code the application to use the Surface Shell, via the launcher you should either launch your application from the selection of available applications and / or set the shell to one application mode if you're programming for a store environment.

于 2013-02-20T20:00:24.553 回答