Example #1
0
 protected override void OnDesktopMainGoBack()
 {
     if (MainNavigationService.CanGoBack)
     {
         MainNavigationService.GoBack();
     }
 }
Example #2
0
        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");
            });
        }
Example #3
0
        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;
        }