0

我正在尝试使用 asp.net 在 Web 浏览器中注册多点鼠标 SDK 嵌入 WPF。我试图注册页面而不是窗口,但似乎只能注册到窗口。

我可以在 Web 浏览器中有一个宽度和高度有限的 WPF 窗口吗?

我在开发中仍然很新鲜,所以如果有任何相关信息或答案已经发布,谢谢和抱歉。

4

1 回答 1

2

简短的回答:

不,除非 Multipoint 1.6 或更高版本问世。

这是 Microsoft 在旧的 Multipoint 表单上发布的帖子。

“对于 1.6,我们打算在此版本中删除活动窗口依赖项。这不仅允许您像上面描述的那样使用它,还允许人们创建完全信任的 XBaps,这将允许您直接使用 WPF无需将其嵌入 Windows 窗体主机或 ClickOnce 安装程序(在幕后 XBap 只是 clickonce 主机中的 WPF 应用程序,具有更自动化的安装过程)。”

这篇文章是在 2010 年发布的,我没有看到除 1.5 到 1.5.1 之外的更新,所以我不确定是否有项目仍在积极开发中。 http://social.msdn.microsoft.com/Forums/en-NZ/mptgen/thread/e0891d93-6ad1-4977-b59c-3a5d5963ef8c

长答案:

Multipoint SDK 不是基于 Web 构建的。话虽如此,这就是我的做法。我创建了一个 com 公开的 winform,使其作为一个 activex 控件工作。如果我没记错的话,我在其中有本机 WPF 窗口。activex 控件通过 com 接口与带有客户鼠标事件的 JavaScript 进行通信。我遇到了很多问题,因为 Multipoint SDK 不是为此而设计的。首先,我用真正的鼠标做什么?我只是把它藏起来并锁定它,但是我该如何取回它。所以我有一个按钮来激活它和停用它。多点必须是活动窗口才能工作,这就是为什么我将它嵌入到同一页面上的 activex 控件中。当一个新页面加载时,真正的鼠标是空闲的,所有的鼠标都控制它,直到加载下一个页面。

Multipoint SDK 几乎可以完美运行,但我们只想要一些我们无法使用它的功能。这是我们不得不重新制作插件的时候,因为我们在当前的 Multipoint SDK 版本中遇到了限制。最主要的是能够在所有浏览器中工作以及对 Silverlight 的离线浏览器支持。ActiveX 不适用于这些。插件必须是单独的。问题是多点仅在它是活动窗口时才有效。此外,带有多点的 activex 解决方案有问题,而且对用户不友好。后来我们希望支持用一只鼠标而不是全部来控制真正的鼠标。在每种情况下,Multipoint 几乎都能完美运行,并且是最干净的解决方案。

所以简而言之,mymousegames.com 的当前版本不使用多点,而是使用客户构建的原始鼠标处理程序。该插件可在所有浏览器上运行。它现在的工作方式是过滤原始鼠标输入并通过套接字将其发送到 Silverlight。此解决方案比 activex 版本灵活得多。该插件使用 Click Once 部署,感觉更加基于 Web。在我看来,它不是完全基于网络的,因为它需要在他们的计算机上运行一个应用程序,但对于普通用户来说,它感觉非常基于网络,这一切都很重要。

我希望在下一个版本中有一个标志可以在不活动时接收鼠标输入。然后我可以提取我的自定义代码并为插件提供一个干净整洁的核心。为了构建一个自定义的原始鼠标处理程序,我查看了 Internet 上的示例。RawinputSharp 是一个非常有用的多点触控 Vista 模块,可以使用多个鼠标来模拟多点触控。

所以我的建议是等到下一个我相信很快就会发布的版本,然后构建一个插件,它可以通过套接字与 Silverlight 或 flash 对话,或者创建一个 activex 控件并通过 JavaScript 进行通信。或者只是创建一个 WPF 应用程序并使用 Click Once 进行部署,这感觉非常基于 Web。

这是 Microsoft 在旧的 Multipoint 表单上发布的帖子。
“对于 1.6,我们打算在此版本中删除活动窗口依赖项。这不仅允许您像上面描述的那样使用它,还允许人们创建完全信任的 XBaps,这将允许您直接使用 WPF无需将其嵌入 Windows 窗体主机或 ClickOnce 安装程序(在幕后 XBap 只是 clickonce 主机中的 WPF 应用程序,具有更自动化的安装过程)。” 这篇文章是在 2010 年发布的,我还没有看到除 1.5 到 1.5.1 之外的更新版本,所以我不确定是否有项目仍在积极开发中。 http://social.msdn.microsoft.com/Forums/en-NZ/mptgen/thread/e0891d93-6ad1-4977-b59c-3a5d5963ef8c

于 2012-10-31T17:32:42.450 回答