下面简单介绍一下重新设计过的编辑器结构,从功能和层次上分主要是这样的:
App, MainWindow: 入口和主界面
Controls:使用的各种控件和自定义界面
Data:数据层,填充控件的数据信息,这里主要是魔兽世界的物品和npc等信息
Services:服务层,编辑器用到的功能由每个模块作为服务提供,比如场景服务维护编辑器中的场景结点等
Commands:命令,响应编辑器的各种命令,独立于界面
Resources:资源,包括主题,图像资源和程序中统一的界面元素,如上面程序的各种颜色边框
Application定义了程序的资源,主题,也是程序的入口,通常在启动主窗口之前,也是设置和获取使用的配置信息的地方,启动代码如下:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
window = new MainWindow();
// Restore the window size when the values are valid.
if (Settings.Default.Left >= 0 && Settings.Default.Top >= 0 && Settings.Default.Width > 0 && Settings.Default.Height > 0
&& Settings.Default.Left + Settings.Default.Width <= SystemParameters.VirtualScreenWidth
&& Settings.Default.Top + Settings.Default.Height <= SystemParameters.VirtualScreenHeight)
{
window.Left = Settings.Default.Left;
window.Top = Settings.Default.Top;
window.Height = Settings.Default.Height;
window.Width = Settings.Default.Width;
}
window.IsMaximized = Settings.Default.IsMaximized;
Resources["EdgeBorderBrush"] = new SolidColorBrush(Settings.Default.EdgeBorderColor);
//in