public MainPage(MainViewModelArgs args)
        {
            InitializeComponent();

            // If ViewModel is null, then this is the "primary" application Window
            if (args is null)
            {
                ViewModel      = Ioc.Default.GetService <MainViewModel>();
                MainDispatcher = Dispatcher;
            }
            else
            {
                ViewModel = new MainViewModel(args);
            }

            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
            NavigationCacheMode        = NavigationCacheMode.Enabled;

            Loaded   += MainPage_Loaded;
            Unloaded += MainPage_Unloaded;

            Messenger.Register <CollectionsUpdatedMessage>(this, (o, m) => OnCollectionsUpdated(m));
            Messenger.Register <AppSettingsChangedMessage>(this, (o, m) => OnAppSettingsChanged(m));
            Messenger.Register <ModalClosedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    OnModalClosed();
                }
            });
            Messenger.Register <PrintRequestedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    PrintView.Show(this);

                    // NB: Printing works by using an off-screen canvas inside
                    //     the FontMapView. OnModelOpened hides this canvas
                    //     preventing printing from working. So in the case of
                    //     printing, we do *not* hide the FontMap
                    OnModalOpened(false);
                }
            });
            Messenger.Register <ExportRequestedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    ExportView.Show(this);
                    OnModalOpened();
                }
            });

            this.SizeChanged += MainPage_SizeChanged;

            _uiSettings = new UISettings();
            _uiSettings.ColorValuesChanged += OnColorValuesChanged;

            FilterCommand = new RelayCommand <object>(e => OnFilterClick(e));
            ResourceHelper.GoToThemeState(this);
        }
Esempio n. 2
0
        public MainPage()
        {
            InitializeComponent();

            ViewModel = Ioc.Default.GetService <MainViewModel>();
            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
            NavigationCacheMode        = NavigationCacheMode.Enabled;

            Loaded   += MainPage_Loaded;
            Unloaded += MainPage_Unloaded;

            MainDispatcher = Dispatcher;
            Messenger.Register <CollectionsUpdatedMessage>(this, (o, m) => OnCollectionsUpdated(m));
            Messenger.Register <AppSettingsChangedMessage>(this, (o, m) => OnAppSettingsChanged(m));
            Messenger.Register <ModalClosedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    OnModalClosed();
                }
            });
            Messenger.Register <PrintRequestedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    PrintView.Show(this);

                    // NB: Printing works by using an off-screen canvas inside
                    //     the FontMapView. OnModelOpened hides this canvas
                    //     preventing printing from working. So in the case of
                    //     printing, we do *not* hide the FontMap
                    OnModalOpened(false);
                }
            });
            Messenger.Register <ExportRequestedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    ExportView.Show(this);
                    OnModalOpened();
                }
            });

            this.SizeChanged += MainPage_SizeChanged;

            _uiSettings = new UISettings();
            _uiSettings.ColorValuesChanged += (s, e) =>
            {
                _ = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    Messenger.Send(new AppSettingsChangedMessage(nameof(AppSettings.UserRequestedTheme)));
                });
            };

            FilterCommand = new RelayCommand <object>(e => OnFilterClick(e));

            ResourceHelper.GoToThemeState(this);
        }
Esempio n. 3
0
        public MainPage()
        {
            InitializeComponent();

            ViewModel = DataContext as MainViewModel;
            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
            NavigationCacheMode        = NavigationCacheMode.Enabled;

            Loaded   += MainPage_Loaded;
            Unloaded += MainPage_Unloaded;

            MainDispatcher = Dispatcher;
            Messenger.Register <CollectionsUpdatedMessage>(this, (o, m) => OnCollectionsUpdated(m));
            Messenger.Register <AppSettingsChangedMessage>(this, (o, m) => OnAppSettingsChanged(m));
            Messenger.Register <ModalClosedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    OnModalClosed();
                }
            });
            Messenger.Register <PrintRequestedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    PrintView.Show(this);
                    OnModalOpened();
                }
            });
            Messenger.Register <ExportRequestedMessage>(this, (o, m) =>
            {
                if (Dispatcher.HasThreadAccess)
                {
                    ExportView.Show(this);
                    OnModalOpened();
                }
            });

            this.SizeChanged += MainPage_SizeChanged;

            _uiSettings = new UISettings();
            _uiSettings.ColorValuesChanged += (s, e) =>
            {
                _ = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    Messenger.Send(new AppSettingsChangedMessage(nameof(AppSettings.UserRequestedTheme)));
                });
            };

            FilterCommand = new RelayCommand <object>(e => OnFilterClick(e));
        }