我正在设计一个电影脚本编辑文本编辑器,目的是为了好玩,并尝试学习一些有关低级 UI 设计的知识。剧本的格式非常简单,并且按照长期以来的标准仅使用 12pt courier 编写。所以我觉得设计一个编辑器会相当简单,只有一种字体和字体大小,没有特殊的格式。
我热衷于保留语义信息——例如,我希望将场景标题存储为场景标题,而不仅仅是作为场景标题格式的文本。
应用程序因脚本中所需的更改跟踪而变得更加复杂。附加页面的顶部应该有修订信息,因此文档需要存储为一组页面,并带有适当的信息来标识修订。
将文档作为独立于 View 的对象,然后根据 View 中的输入调用文档对象的方法来添加文本等似乎是有意义的。但是,哪个对象负责分页?起初我猜我会说文档,但分页似乎是一种演示文稿。文档使用图形文本 API 来测量字符串并计算出它们占用了多少空间也没有意义。但是,如果由 View 决定,这在理论上可能会与它在文档中的存储方式发生冲突。那么最好的解决方案是什么?
我在编程方面有丰富的经验,但对从头开始绘制自己的用户控件的细节知之甚少。我也有意避免将它与特定语言联系起来,但我很可能会用 C# 或 C++ 编写。
感谢您的宝贵时间。
最佳答案
IMO 的 View 或模型都不负责分页。这是 MVC 范例中 Controller 的工作。当然,您会有一些东西在 View 中表示寻呼机,但 Controller 的实际工作是控制将多少记录发送到 View 。
当然pager类本身是一个模型,但是它的实例化应该在 Controller 中。
关于c# - MVC 文本编辑器场景中模型的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648238/