如何在应用程序中实现交互式教程?

时间:2011-09-21 14:24:04

标签: c# vsto

我有Word的C#加载项,并希望实现像游戏一样的交互式教程。我想以某种方式突出(可能通过盘旋)某些视觉元素并显示描述元素功能的文本框。例如,假设加载项是通用工作流编辑器。我想逐步向用户展示通过直观地选择元素并解释他们做什么以及他有哪些选项需要做什么。我的第一个问题是:这可以用C#完成吗?我的第二个问题是如何? :)我想我必须获得所述视觉元素的位置,然后在顶部绘制图像,但我不知道如何做到这一点。

1 个答案:

答案 0 :(得分:4)

我有点失望,即使Stack Overflow社区中的任何一个成员都没有花时间至少给出一个暗示。但这就是生活,我只想在这里分享我的发现,因为我确信别人会从中受益。

为了能够进行交互式教程,您需要做三件事:

  • 根据屏幕坐标查找控件所在位置的方法
  • 通过突出显示或控制用户指向控件的方法 例如,用红线包围它。
  • 执行默认操作的方法(即:单击按钮)。

换句话说,我们的想法是让某种窗口包含描述控件的文本和一些在应用程序中指示控件的图形方式。可选地,窗口可以提供类似ShowMe按钮的东西,通过控制鼠标和键盘向用户显示如何使用控件。

当控件由您自己制作并因此具有源代码访问权限时,这是微不足道的。但是,当为Word等黑盒应用程序执行此类操作时,您可以使用Windows IAccessible接口。使用您最喜欢的搜索引擎搜索它将产生您理解和使用它所需的一切。 IAccessible允许一个人做很多事情,但最重要的是它可以获得一个控件的位置,也可以做默认操作。

完成这些事情后,下一步就是弄清楚如何以图形方式指出控件。有很多方法可以做到这一点,但在我的情况下,我选择用红色矩形包围它。我这样做是通过创建一个隐藏的无边框形式,上面有一个空的红色矩形。拥有控制器的位置和大小,我将上述表格放在控件上没有任何问题。

所以你有它。我列出了为任何应用程序制作交互式教程所需的构建块。