protected override void OnDesktopMainGoBack() { if (MainNavigationService.CanGoBack) { MainNavigationService.GoBack(); } }
private void InitServices() { AppEngine.Reset(); AppEngine.AddServices(NetworkAdapterTypes.WebRequest); //var store = new GzipFileStoreService(new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, XComicConst.CacheFolderName)), MD5AddressToFileNameProvider.Instance); var store = FileStoreService.FromMd5Default(Path.Combine(Workstation, XComicConst.CacheFolderName)); var hp = new Lazy <HomePage>(() => new HomePage()); var cv = new Lazy <ComicView>(() => new ComicView()); var bv = new Lazy <BookshelfView>(() => new BookshelfView()); var va = new ViewActiver <IControl> { [typeof(HomePage)] = () => hp.Value, [typeof(ComicView)] = () => cv.Value, [typeof(BookshelfView)] = () => bv.Value }; var nav = new MainNavigationService(new Border(), va); AppEngine.Services.AddSingleton(x => new BookManager(new DirectoryInfo(Path.Combine(Workstation, XComicConst.BookFolderName)), x.GetRequiredService <RecyclableMemoryStreamManager>())); AppEngine.Services.AddSingleton <IViewActiver <IControl> >(va); AppEngine.Services.AddSingleton <ThemeService>(); AppEngine.Services.AddSingleton <TitleService>(); AppEngine.Services.AddSingleton <IComicTurnPageService>(nav); AppEngine.Services.AddSingleton(nav); AppEngine.Services.AddScoped <RemoteEngine>(); AppEngine.Services.AddSingleton <IComicSaver>(store); AppEngine.Services.AddSingleton <IStoreService>(store); AppEngine.Services.AddSingleton <IPlatformService, PlatformService>(); AppEngine.Services.AddSingleton <IStreamImageConverter <Bitmap>, StreamImageConverter>(); AppEngine.Services.AddSingleton <IResourceFactoryCreator <Bitmap>, PlatformResourceCreatorFactory <Bitmap, Bitmap> >(); AppEngine.Services.AddSingleton <ExceptionService>(); var storeSer = new WithImageComicStoreService <Bitmap, Bitmap>(new DirectoryInfo(Path.Combine(Workstation, XComicConst.CacheFolderName, XComicConst.StoreFolderName))); AppEngine.Services.AddSingleton(storeSer); AppEngine.Services.AddSingleton <IObservableCollectionFactory>(new AvaloniaObservableCollectionFactory()); AppEngine.Services.AddSingleton <ComicStoreService <WithImageComicStoreBox <Bitmap, Bitmap> > >(storeSer); AppEngine.Services.AddSingleton(HistoryService.FromFile(Path.Combine(Workstation, HistoryService.HistoryFileName))); AppEngine.Services.AddSingleton <ProposalEngine>(); AppEngine.Services.AddScoped <IComicVisiting <Bitmap>, DesktopStoreComicVisiting>(); AppEngine.Services.AddScoped <StoreComicVisiting <Bitmap> >(); var configRoot = BuildConfiguration(); AppEngine.Services.AddSingleton(CreateSettings); AppEngine.Services.AddSingleton(configRoot); AppEngine.Services.AddSingleton <IConfiguration>(configRoot); AppEngine.Services.AddSingleton <IConfigurationRoot>(configRoot); AppEngine.Services.AddLogging(x => { x.ClearProviders(); x.AddNLog("NLog.config"); }); }
internal void RunInitAll() { navSer = AppEngine.GetRequiredService <MainNavigationService>(); var titleSer = AppEngine.GetRequiredService <TitleService>(); exSer = AppEngine.GetRequiredService <ExceptionService>(); var settings = AppEngine.GetRequiredService <AnfSettings>(); mainPlan = this.Get <Panel>("MainPlan"); var titleBar = this.Get <Border>("TitleBar"); var exBorder = this.Get <Border>("ExcetionBorder"); mainPlan.Children.Add(navSer.border); titleBar.DataContext = titleSer; titleBar.Bind(HeightProperty, new Binding(nameof(TitleService.OffsceneHeight)) { Source = titleSer }); exBorder.DataContext = exSer; exBorder.KeyDown += ExBorder_KeyDown; this.Bind(MinWidthProperty, new Binding(nameof(WindowSettings.MinWidth)) { Source = settings.Window }); this.Bind(MinHeightProperty, new Binding(nameof(WindowSettings.MinHeight)) { Source = settings.Window }); this.Bind(TopmostProperty, new Binding(nameof(WindowSettings.Topmost)) { Source = settings.Window }); this.Get <Border>("WraperExcetionBorder") .DataContext = settings; }