【问题标题】:Contextual Text Editor in WPFWPF 中的上下文文本编辑器
【发布时间】:2012-07-09 16:05:00
【问题描述】:

我们目前正在寻求在 WPF (.NET 4.0) 中创建一个文本编辑器,这将允许我们团队中的作者创建电影脚本。简而言之,该功能应类似于 FinalDraft 或 Adob​​e Story 的功能(即:文本的上下文定位取决于光标的位置和用户意图)

我们目前正在研究两种不同的设计解决方案:

  • 一个 WPF 控件将充当容器,多个小的文本编辑控件将代表脚本中的行。这将允许我们使用它们的边距定位控件,同时也使绑定变得容易。这里的挑战是处理多行选择。我正在考虑使用列表框作为容器,每个列表框项都是包含文本框的自定义控件。这将需要根据用户的操作来实例化控件。一切都将被剥皮,以给人一种用户正在空白页面上工作的印象。

  • 一个能够显示自定义 XML 数据的大文本框。这里的挑战是确定光标的确切位置(即:光标位于演员姓名的顶部等)并适当地定位文本(即:演员姓名居中并大写等)

我最近尝试实现第一个解决方案,但必须重新实现基本文本框中内置的整个选择行为并非易事,并且需要大量工作。至于第二种解决方案,绑定到我的业务对象将比简单地实例化具有不同绑定的多个控件要困难得多。

您还有其他解决方案吗?

【问题讨论】:

  • 乍一看,第一种方法看起来就像我要开始的地方。然而,这并非微不足道,需要大量的反复试验才能最终从用户和设计的角度得到可靠的结果。
  • 你看过 SharpDevelop 项目中的 AvalonEdit...它非常可扩展,并且拥有 LGPL 许可证。 wiki.sharpdevelop.net/AvalonEdit.ashx
  • @colinsmith:谢谢,现在正在查看。我希望我能够轻松地绑定到业务对象。可惜文档似乎没有正确打开。 :)
  • 你可能想看看这本书amazon.co.uk/Dissecting-C-Application-Inside-SharpDevelop/dp/…它有点老了,但它可能会帮助你更多地了解SharpDevelop以及你可以扩展代码/添加的方式您自己的插件等。
  • 如果 .chm 没有打开,请尝试右键单击该文件 > 属性 > 取消阻止。

标签: c# .net wpf


【解决方案1】:

我曾经需要一个应用程序的文本编辑器。我们有一个用于设置的大 xml 文件,用户应该可以对其进行编辑。

事实证明,如果您的文件足够大(+ 10000 行),富文本框会变得pritty变慢。

至于构建 gui 掩码:仅当您的用户输入一些简短的选项(如文本)时。但我了解您是否希望您的用户编写创意文本。这个“面具”gui - “很多小地方”会让他们觉得他们是 80 年代。

我建议:不要写 Programm ,只写一个 Plugin 到一个exitings editor。有些是免费的,例如: http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor 或添加单词 - 人们喜欢 Word 并且知道 Word http://www.codeproject.com/Articles/8837/Writing-a-Word-Add-in-Part-I

对于绑定数据等:一旦文本被写入,用户只需按下保存按钮,您就可以解析输入的信息。我不会在飞行中这样做,因为它会变得很慢。您还说信息是链接的,因此只有写入所有数据才能使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    相关资源
    最近更新 更多