【发布时间】:2012-07-09 16:05:00
【问题描述】:
我们目前正在寻求在 WPF (.NET 4.0) 中创建一个文本编辑器,这将允许我们团队中的作者创建电影脚本。简而言之,该功能应类似于 FinalDraft 或 Adobe Story 的功能(即:文本的上下文定位取决于光标的位置和用户意图)
我们目前正在研究两种不同的设计解决方案:
一个 WPF 控件将充当容器,多个小的文本编辑控件将代表脚本中的行。这将允许我们使用它们的边距定位控件,同时也使绑定变得容易。这里的挑战是处理多行选择。我正在考虑使用列表框作为容器,每个列表框项都是包含文本框的自定义控件。这将需要根据用户的操作来实例化控件。一切都将被剥皮,以给人一种用户正在空白页面上工作的印象。
一个能够显示自定义 XML 数据的大文本框。这里的挑战是确定光标的确切位置(即:光标位于演员姓名的顶部等)并适当地定位文本(即:演员姓名居中并大写等)
我最近尝试实现第一个解决方案,但必须重新实现基本文本框中内置的整个选择行为并非易事,并且需要大量工作。至于第二种解决方案,绑定到我的业务对象将比简单地实例化具有不同绑定的多个控件要困难得多。
您还有其他解决方案吗?
【问题讨论】:
-
乍一看,第一种方法看起来就像我要开始的地方。然而,这并非微不足道,需要大量的反复试验才能最终从用户和设计的角度得到可靠的结果。
-
你看过 SharpDevelop 项目中的 AvalonEdit...它非常可扩展,并且拥有 LGPL 许可证。 wiki.sharpdevelop.net/AvalonEdit.ashx
-
@colinsmith:谢谢,现在正在查看。我希望我能够轻松地绑定到业务对象。可惜文档似乎没有正确打开。 :)
-
你可能想看看这本书amazon.co.uk/Dissecting-C-Application-Inside-SharpDevelop/dp/…它有点老了,但它可能会帮助你更多地了解SharpDevelop以及你可以扩展代码/添加的方式您自己的插件等。
-
如果 .chm 没有打开,请尝试右键单击该文件 > 属性 > 取消阻止。