【问题标题】:Documenting application记录申请
【发布时间】:2012-02-03 14:11:57
【问题描述】:

最好的是不需要任何文档的应用程序。 理想的第二步是具有简洁明了的工具提示的应用程序。 同时工具提示是必须的!......但是......规则存在被打破;-)并且最后一个经常导致可怕的后果。所以这是起点。 我们有相当大的应用程序没有文档。我们慢慢重构它,但用户现在需要一些文档。我们还有几位技术作家可以记录我们的软件,并且他们有一些备用资源。 我有一个想法如何减轻他们的工作。

用户将鼠标移动到控件上,激活(通过快捷方式)DocTool 并输入控件的描述。此描述成为指向控件的工具提示。 所以所有这些功能都是一个组件。

Q1:有人知道这样的组件是否存在吗?

Q2:如何唯一标识控件以供以后引用? (自动化的 UI 测试工具设法做到了)

【问题讨论】:

  • DocTool 是您已经拥有的还是您想要的?我怀疑您可以扩展所有基本控件。您将如何确保安全,以便不只是任何人都可以激活 DocTool?这将减轻技术作家的工作,但更多的活动部分意味着开发人员的工作量更多。
  • @BalamBalam DocTool 是我们想要的。我们知道谁拥有激活该工具的权限。这个“更多”是可以的,因为我们的应用程序被包括技术作家在内的许多部门内部使用,所以用户与我们关系密切,我们不想让他们生气 =)

标签: .net wpf winforms


【解决方案1】:

选项 1
您可以查看WPF Globalization 并将类似的技术应用于每个控件的 ToolTip 属性。

选项 2
创建可编辑的外部数据源(例如 XML 文件)。此数据源应至少有一个 IdToolTip 列。

创建一个封装您的数据源(例如ToolTipData)并通过数据源的Id 公开对每一行的访问的单例。

FrameworkElement 类型为string 的附加属性定义称为ToolTipId。将其附加到需要工具提示的每个控件。 (确保将唯一值应用于每个控件。)ToolTipId 值应映射到数据源中的Id 值。

在附加的属性回调中,使用ToolTipId 像这样设置工具提示:

frameworkElement.ToolTip = ToolTipData.Default.Tooltips[ToolTipId];

【讨论】:

  • 请注意,每种情况都不同(您可能使用 CSV 数据或可通过网络检索的数据),但这是我开始解决问题的方式
  • 如何将 Id 映射到控件?即使在 WPF 中,它也需要为每个控件设置 x:Uid,更不用说 WinForms。应该有另一种方法来识别表单上的控件。可能我会使用由可视化树(WPF 或 WinForms)中的控件名称构造的某种路径
  • 要将Id 映射到控件,请使用ToolTipId 附加属性(如答案中所述)。 ControlToolTipIdDataSource.IdToolTip。我建议不要使用构造路径,因为在您的数据源中,您可能会有一个类似的 ID:"Window.Grid.ListBox.ListBoxItem.StackPanel.CheckBox",这看起来很笨拙;)
  • 嗯,附加属性很好。但它们只适用于 WPF。正如你所说,我们必须为我试图避免的每个控件设置 tooltipid 属性。
  • 如果您也需要它用于 WinForms,我通常会将其他数据放在控件的 Tag 属性中。但是,您必须有某种方法来识别目标控件,因此可以在必要的控件上添加一个 id 值,或者创建一个复杂的算法来确定控件 OR ...?这可能是一个难题;如果您知道,请提供替代答案。
猜你喜欢
  • 1970-01-01
  • 2017-05-17
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 2015-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多