第十节 实例五:自定义视图开发
视图是什么?在Micaps中,就是地图那块区域,为什么不叫直接叫地图呢?因为在SharpDevelop框架中,这块地方不仅可以显示地图,还可以显示其它东东,地图只是视图的一种,可以是个Word文档、图片、网页等等,甚至可以做个游戏嵌进去,是不是很有诱惑力?本节将给Micaps增加记写字板视图。
创建新视图,首先要解决从哪里启动Micaps的新视图,这里,我们按HelloWorld的例子,给Micaps的视图菜单增加一个菜单项“写字板视图”,单击此菜单项后,Micaps的工作区将显示一个文本编辑区。
1、Addin文件
首先,还是建立Addin文件:
<AddIn name="ViedDemo"
author="郭江峰"
description="自定义视图插件演示"
>
<Runtime>
<Importassembly="ViewDemo.dll"/>
</Runtime>
<Path name = "/Workspace/MainMenu/View">
<MenuItem id ="ShowMyViewCommand"
label = "写字板视图"
class ="ViewDemo.ShowMyView"/>
</Path>
</AddIn>
很简单,大家都应该能看懂了。
2、代码
和浮动窗口类似,首先需要设计一个用户控件,这个控件即为我们要设计的视图,本例中我们是要实现写字板功能,所以用户控件中只放一个RichTextBox控件。
然后编写代码:
namespace ViewDemo { public class MyView:AbstractViewContent { public MyView() { TitleName = "写字板"; } public override object Content { get { return new MyViewControl(); } } } public class ShowMyView : AbstractMenuCommand { public override void Execute(object arg) { WorkspaceSingleton.Workspace.ShowView(new MyView()); } } }
代码中,MyView继承了AbstractViewContent,它是要返回我们创建的用户控件作为视图工作区。ShowMyView是我们在前面Addin里设定的要执行“写字板视图”菜单项的命令类,调用主工作区的ShowView函数,让它显示视图。
编译后运行Micaps,点击主菜单-“视图“- “写字板视图”,Micaps工作区将增加一个新标签项“写字板”,显示一个编辑区,在里面贴上代码试试,如下图: