public LauncherViewModel(MainForm view)
        {
            SimpleConfirmHandler = message => MessageBox.Show(View, message, "操作确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK;
            SimpleHandler        = (success, message) => MessageBox.Show(View, message, success ? "操作成功" : "操作失败", MessageBoxButtons.OK, success ? MessageBoxIcon.Information : MessageBoxIcon.Error);
            SimpleFailureHandler = (success, message) =>
            {
                if (!success)
                {
                    MessageBox.Show(View, message, "操作失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            };

            View       = view;
            Dispatcher = new DispatcherWrapper(a => View.Invoke(a), a => View.BeginInvoke(a), () => !View.InvokeRequired);

            var settings = Properties.Settings.Default;

            if (settings.UpgradeRequired)
            {
                settings.Upgrade();
                settings.UpgradeRequired = false;
                settings.Save();
            }

            SuppressInfo    = settings.SuppressInfo;
            LogTextWrapping = settings.LogTextWrapping;
        }
Exemplo n.º 2
0
        private void FaceDetection_FaceDetected(FaceDetectionEffect sender, FaceDetectedEventArgs args)
        {
            DispatcherWrapper.Current().Dispatch(() =>
            {
                var properties = DefaultManager.VideoDeviceController.GetMediaStreamProperties(MediaStreamType.VideoPreview) as VideoEncodingProperties;
                if (properties == null || properties.Width == 0 || properties.Height == 0)
                {
                    return;
                }

                var canvas    = FacesCanvas.Child as Canvas;
                canvas.Height = properties.Height;
                canvas.Width  = properties.Width;
                FaceDetected?.Invoke(sender, args);
                canvas.Children.Clear();

                foreach (var face in args.ResultFrame.DetectedFaces.Where(x => x.FaceBox.Width != 0 && x.FaceBox.Height != 0))
                {
                    var box = new Rectangle
                    {
                        Height          = face.FaceBox.Height,
                        Width           = face.FaceBox.Width,
                        Stroke          = FacesBoxColor.ToSolidColorBrush(),
                        StrokeThickness = 2,
                    };
                    Canvas.SetLeft(box, face.FaceBox.X);
                    Canvas.SetTop(box, face.FaceBox.Y);
                    canvas.Children.Add(box);
                }
                FaceCountChanged?.Invoke(this, canvas.Children.Count());
            });
        }
        public async Task <ViewLifetimeControl> OpenAsync(Type page, object parameter = null, string title = null,
                                                          ViewSizePreference size     = ViewSizePreference.UseHalf)
        {
            WriteLine($"Page: {page}, Parameter: {parameter}, Title: {title}, Size: {size}");

            var currentView = ApplicationView.GetForCurrentView();

            title = title ?? currentView.Title;

            var newView    = CoreApplication.CreateNewView();
            var dispatcher = new DispatcherWrapper(newView.Dispatcher);
            var newControl = await dispatcher.Dispatch(async() =>
            {
                var control               = ViewLifetimeControl.GetForCurrentView();
                var newWindow             = Window.Current;
                var newAppView            = ApplicationView.GetForCurrentView();
                newAppView.Title          = title;
                var nav                   = BootStrapper.Current.NavigationServiceFactory(BootStrapper.BackButton.Ignore, BootStrapper.ExistingContent.Exclude);
                control.NavigationService = nav;
                nav.Navigate(page, parameter);
                newWindow.Content = nav.Frame;
                newWindow.Activate();

                await ApplicationViewSwitcher
                .TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, currentView.Id, size);
                return(control);
            }).ConfigureAwait(false);

            return(newControl);
        }
Exemplo n.º 4
0
        public WindowWrapper(Window window)
        {
            if (ActiveWrappers.Any(x => x.Window == window))
            {
                throw new Exception("Windows already has a wrapper; use Current(window) to fetch.");
            }
            Window = window;
            ActiveWrappers.Add(this);
            Dispatcher     = new DispatcherWrapper(window.Dispatcher);
            window.Closed += (s, e) => { ActiveWrappers.Remove(this); };

            _busyIndicator = new Grid
            {
                Background = new SolidColorBrush(Colors.Black)
                {
                    Opacity = .5
                },
            };
            _busyIndicator.Children.Add(new ProgressRing
            {
                Height              = 100,
                Width               = 100,
                Foreground          = new SolidColorBrush(Colors.White),
                IsActive            = true,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            });
        }
        public LauncherViewModel(MainWindow view)
        {
            View       = view;
            Dispatcher = new DispatcherWrapper(View.Dispatcher.Invoke, a => View.Dispatcher.BeginInvoke(a), View.Dispatcher.CheckAccess);

            CurrentTabTester = new TabIndexTester(this);

            var settings = Properties.Settings.Default;

            if (settings.UpgradeRequired)
            {
                settings.Upgrade();
                settings.UpgradeRequired = false;
                settings.Save();
            }

            View.Width  = settings.Width;
            View.Height = settings.Height;

            Theme                = settings.Theme;
            LogTextWrapping      = settings.LogTextWrapping;
            SuppressNotification = settings.SuppressNotification;

            LogsViewSource.Filter += e =>
            {
                var item = e as LogModel;
                return(LogSourceFilter == "" || item.Source == LogSourceFilter);
            };
        }
Exemplo n.º 6
0
        internal WindowWrapper(Window window)
        {
            Window     = window;
            Dispatcher = new DispatcherWrapper(window.Dispatcher);
            window.CoreWindow.Closed += (s, e) => WindowWrapperManager.Instances.Remove(this);
            window.Closed            += (s, e) => WindowWrapperManager.Instances.Remove(this);
            window.Activate();

            IsMainView = CoreApplication.MainView == CoreApplication.GetCurrentView();

            _DisplayInformation = new Lazy <DisplayInformation>(() =>
            {
                Window.Activate();
                return(Dispatcher.Dispatch(() => DisplayInformation.GetForCurrentView()));
            });
            _ApplicationView = new Lazy <ApplicationView>(() =>
            {
                Window.Activate();
                return(Dispatcher.Dispatch(() => ApplicationView.GetForCurrentView()));
            });
            _UIViewSettings = new Lazy <UIViewSettings>(() =>
            {
                Window.Activate();
                return(Dispatcher.Dispatch(() => UIViewSettings.GetForCurrentView()));
            });
        }
Exemplo n.º 7
0
        public async Task<ViewLifetimeControl> OpenAsync(Type page, object parameter = null, string title = null,
            ViewSizePreference size = ViewSizePreference.UseHalf)
        {
            WriteLine($"Page: {page}, Parameter: {parameter}, Title: {title}, Size: {size}");

            var currentView = ApplicationView.GetForCurrentView();
            title = title ?? currentView.Title;
           
            var newView = CoreApplication.CreateNewView();
            var dispatcher = new DispatcherWrapper(newView.Dispatcher);
            var newControl = await dispatcher.Dispatch(async () =>
            {                
                var control=ViewLifetimeControl.GetForCurrentView();
                var newWindow = Window.Current;
                var newAppView = ApplicationView.GetForCurrentView();
                newAppView.Title = title;                
                var nav = BootStrapper.Current.NavigationServiceFactory(BootStrapper.BackButton.Ignore, BootStrapper.ExistingContent.Exclude);
                control.NavigationService = nav;
                nav.Navigate(page, parameter);
                newWindow.Content = nav.Frame;
                newWindow.Activate();

                await ApplicationViewSwitcher
                    .TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, currentView.Id, size);
                return control;
            }).ConfigureAwait(false);
            return newControl;
        }
Exemplo n.º 8
0
        public Task FillItemsAsync()
        {
            return(Task.Run(async delegate
            {
                var dispatcher = DispatcherWrapper.Current();
                //Для потомков
                //await dispatcher.DispatchAsync(() => items.Clear());
                //foreach (var item in Randomizer
                //    .Configure(ItemsRequired, UniqueOnly, SortAfter)
                //    .RollItems()
                //    .Select(x => new ArrayItem(x)))
                //{
                //    await dispatcher.DispatchAsync(() => items.Add(item));
                //}

                var items = new ObservableCollection <ArrayItem>(Randomizer.Configure(ItemsRequired, UniqueOnly, SortAfter)
                                                                 .RollItems()
                                                                 .Select(x => new ArrayItem(x)));

                await dispatcher.DispatchAsync(delegate
                {
                    ArraySource.Instance.Items = items;
                });
            }));
        }
Exemplo n.º 9
0
        public async Task OpenAsync(Type page, object parameter = null, string title = null, ViewSizePreference size = ViewSizePreference.UseHalf)
        {
            DebugWrite($"Page: {page}, Parameter: {parameter}, Title: {title}, Size: {size}");

            var currentView = ApplicationView.GetForCurrentView();

            title = title ?? currentView.Title;

            var newView    = CoreApplication.CreateNewView();
            var dispatcher = new DispatcherWrapper(newView.Dispatcher);
            await dispatcher.DispatchAsync(async() =>
            {
                var newWindow    = Window.Current;
                var newAppView   = ApplicationView.GetForCurrentView();
                newAppView.Title = title;

                var frame = BootStrapper.Current.NavigationServiceFactory(BootStrapper.BackButton.Ignore, BootStrapper.ExistingContent.Exclude);
                frame.Navigate(page, parameter);
                newWindow.Content = frame.Frame;
                newWindow.Activate();

                await ApplicationViewSwitcher
                .TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, currentView.Id, size);
            });
        }
Exemplo n.º 10
0
        public async Task <IViewLifetimeControl> OpenAsync(UIElement content, string title = null,
                                                           ViewSizePreference size         = ViewSizePreference.UseHalf)
        {
            WriteLine($"Frame: {content}, Title: {title}, Size: {size}");

            var currentView = ApplicationView.GetForCurrentView();

            title = title ?? currentView.Title;

            var newView    = CoreApplication.CreateNewView();
            var dispatcher = new DispatcherWrapper(newView.Dispatcher);
            var newControl = await dispatcher.Dispatch(async() =>
            {
                var control      = ViewLifetimeControl.GetForCurrentView();
                var newWindow    = Window.Current;
                var newAppView   = ApplicationView.GetForCurrentView();
                newAppView.Title = title;

                // TODO: (Jerry)
                // control.NavigationService = nav;

                newWindow.Content = content;
                newWindow.Activate();

                await ApplicationViewSwitcher
                .TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, currentView.Id, size);
                return(control);
            }).ConfigureAwait(false);

            return(newControl);
        }
Exemplo n.º 11
0
 public WindowWrapper(Window window)
 {
     if (ActiveWrappers.Any(x => x.Window == window))
         throw new Exception("Windows already has a wrapper; use Current(window) to fetch.");
     Window = window;
     ActiveWrappers.Add(this);
     Dispatcher = new DispatcherWrapper(window.Dispatcher);
     window.Closed += (s, e) => { ActiveWrappers.Remove(this); };
 }
Exemplo n.º 12
0
 public NavButtonBehavior()
 {
     if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
     {
         _dispatcher     = DispatcherWrapper.Current();
         _throttleHelper = new EventThrottleHelper {
             Throttle = 1000
         };
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// Adds the collection of T to our collection.
 /// </summary>
 /// <param name="collection">The collection to load the new items from.</param>
 /// <param name="notify">The dispatcher wrapper to used for thread access.</param>
 public void Append(IEnumerable <T> collection, DispatcherWrapper notify = null)
 {
     try
     {
         InternalSet(collection, false);
     }
     finally
     {
         Reset(notify);
     }
 }
Exemplo n.º 14
0
 public void Setup()
 {
     unitOfWork        = new UnitOfWork();
     appViewModel      = new Mock <IApplicationViewModel <DCPersonnel> >();
     dispatcherWrapper = new DispatcherWrapper();
     parentPage        = new ParentPage();
     security          = new Security();
     viewModel         = new BloodDonationRequestsViewModel(unitOfWork, appViewModel.Object, dispatcherWrapper, security)
     {
         ParentPage = parentPage
     };
 }
Exemplo n.º 15
0
 public void Setup()
 {
     unitOfWork        = new UnitOfWork();
     appViewModel      = new Mock <IApplicationViewModel <Administrator> >();
     dispatcherWrapper = new DispatcherWrapper();
     parentPage        = new ParentPage();
     security          = new Security();
     viewModel         = new DonationCentersViewModel(unitOfWork, appViewModel.Object, dispatcherWrapper, security)
     {
         ParentPage = parentPage
     };
 }
Exemplo n.º 16
0
    internal void SomeCode()
    {
        // A UI application would call...
        var dispatcher        = Dispatcher.CurrentDispatcher;
        var dispatcherWrapper = new DispatcherWrapper(action => dispatcher.BeginInvoke(action));

        // A non-UI application would call...
        dispatcherWrapper = new DispatcherWrapper(action => action());
        // The library code would call..
        dispatcherWrapper.Dispatch(() => {
            // This code runs on the UI thread in UI apps and on any thread in non-UI apps.
        });
    }
Exemplo n.º 17
0
        public PlaybackService()
        {
            // Create the player instance
            _player = new MediaPlayer();
            _player.PlaybackSession.PositionChanged      += PlaybackSession_PositionChanged;
            _player.PlaybackSession.PlaybackStateChanged += PlaybackSession_PlaybackStateChanged;

            _playlist = new MediaPlaybackList();
            _playlist.CurrentItemChanged += _playlist_CurrentItemChanged;
            _player.Source = _playlist;
            _player.Play();

            Dispatcher = new DispatcherWrapper(CoreApplication.MainView.CoreWindow.Dispatcher);
        }
Exemplo n.º 18
0
 internal WindowWrapper(Window window)
 {
     if (Current(window) != null)
     {
         throw new Exception("Windows already has a wrapper; use Current(window) to fetch.");
     }
     Window = window;
     ActiveWrappers.Add(this);
     Dispatcher = new DispatcherWrapper(window.Dispatcher);
     window.CoreWindow.Closed += (s, e) =>
     {
         ActiveWrappers.Remove(this);
     };
     window.Closed += (s, e) =>
     {
         ActiveWrappers.Remove(this);
     };
 }
Exemplo n.º 19
0
 public WindowWrapper(Window window) : this()
 {
     if (Current(window) != null)
     {
         throw new Exception("Windows already has a wrapper; use Current(window) to fetch.");
     }
     Window = window;
     Instances.Add(this);
     Dispatcher = new DispatcherWrapper(window.Dispatcher);
     window.CoreWindow.Closed += (s, e) =>
     {
         Instances.Remove(this);
     };
     window.Closed += (s, e) =>
     {
         Instances.Remove(this);
     };
 }
Exemplo n.º 20
0
 internal WindowWrapper(Window window)
 {
     if (Current(window) != null)
     {
         throw new Exception("Windows already has a wrapper; use Current(window) to fetch.");
     }
     Window = window;
     ActiveWrappers.Add(this);
     Dispatcher = new DispatcherWrapper(window.Dispatcher);
     window.CoreWindow.Closed += (s, e) =>
     {
         ActiveWrappers.Remove(this);
     };
     window.Closed += (s, e) =>
     {
         ActiveWrappers.Remove(this);
     };
 }
Exemplo n.º 21
0
        private static async Task <T> ShowAsync <T>(Func <Task <T> > show, IDispatcherWrapper dispatcher)
        {
            lock (DialogState)
            {
                while (DialogState.Showing)
                {
                    Monitor.Wait(DialogState);
                }
                DialogState.Showing = true;
            }
            dispatcher = dispatcher ?? DispatcherWrapper.Current();
            var result = await dispatcher.DispatchAsync(async() => await show());

            lock (DialogState)
            {
                DialogState.Showing = false;
                Monitor.PulseAll(DialogState);
            }
            return(result);
        }
Exemplo n.º 22
0
 public ModelBase(DispatcherWrapper dispatcher = null)
 {
     Dispatcher = dispatcher;
     foreach (var prop in GetType().GetTypeInfo().GetProperties(BindingFlags.Instance | BindingFlags.Public))
     {
         var attr = prop.GetCustomAttribute <SourceBindingAttribute>();
         if (attr == null)
         {
             continue;
         }
         foreach (var source in attr.Sources)
         {
             if (!SourceBinding.ContainsKey(source))
             {
                 SourceBinding[source] = new HashSet <string>();
             }
             SourceBinding[source].Add(prop.Name);
         }
     }
 }
Exemplo n.º 23
0
        //public override async Task OnNavigatedToAsync(object parameter, navigationmode mode, idictionary<string, object> state)
        //{
        //    // defaults
        //    price1checked = true;
        //    price2checked = true;
        //    star2checked = true;
        //    star3checked = true;
        //    selectedcuisine = "indian";
        //    distance = 1;
        //    await searchasync();
        //}

        public async Task SearchAsync()
        {
            var source = _cancellationTokens.AddAndReturn(new CancellationTokenSource());
            await Task.Factory.StartNew(async() =>
            {
                // TODO: convert distance number to kilos
                var restaurants = await _dataService.GetReataurantsAsync();
                if (!source.Token.IsCancellationRequested)
                {
                    DispatcherWrapper.Current().Dispatch(() =>
                    {
                        Restaurants.Clear();
                        foreach (var restaurant in restaurants)
                        {
                            Restaurants.Add(restaurant);
                        }
                    });
                }
            }, source.Token);
        }
Exemplo n.º 24
0
 public async Task DisplayResults()
 {
     var source = _cancellationTokens.AddAndReturn(new CancellationTokenSource());
     await Task.Factory.StartNew(() =>
     {
         _dataService.CuisineType = CuisineType;
         var restaurants          = _dataService.listOfRestaurants().Result;
         if (!source.Token.IsCancellationRequested)
         {
             DispatcherWrapper.Current().Dispatch(() =>
             {
                 Restaurants.Clear();
                 foreach (var restaurant in restaurants)
                 {
                     Restaurants.Add(restaurant);
                 }
             });
         }
     }, source.Token);
 }
        public LauncherViewModel(MainWindow view)
        {
            View       = view;
            Dispatcher = new DispatcherWrapper(View.Dispatcher.Invoke, a => View.Dispatcher.BeginInvoke(a), View.Dispatcher.CheckAccess);

            CurrentTabTester = new TabIndexTester(this);

            var settings = Properties.Settings.Default;

            if (settings.UpgradeRequired)
            {
                settings.Upgrade();
                settings.UpgradeRequired = false;
                settings.Save();
            }

            View.Width  = settings.Width;
            View.Height = settings.Height;

            SuppressInfo    = settings.SuppressInfo;
            LogTextWrapping = settings.LogTextWrapping;
        }
Exemplo n.º 26
0
        public WindowWrapper(Window window)
        {
            if (ActiveWrappers.Any(x => x.Window == window))
                throw new Exception("Windows already has a wrapper; use Current(window) to fetch.");
            Window = window;
            ActiveWrappers.Add(this);
            Dispatcher = new DispatcherWrapper(window.Dispatcher);
            window.Closed += (s, e) => { ActiveWrappers.Remove(this); };

            _busyIndicator = new Grid
            {
                Background = new SolidColorBrush(Colors.Black) { Opacity = .5 },
            };
            _busyIndicator.Children.Add(new ProgressRing
            {
                Height = 100,
                Width = 100,
                Foreground = new SolidColorBrush(Colors.White),
                IsActive = true,
                VerticalAlignment = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            });
        }
Exemplo n.º 27
0
 public void Attach(DependencyObject associatedObject)
 {
     _dispatcher = WindowWrapper.Current().Dispatcher;
     BootStrapper.BackRequested += BootStrapper_BackRequested;
 }
 public static DelayedDispatcherTask BeginInvoke(this DispatcherWrapper wrapper, TimeSpan delay, Action method)
 {
     return(new DelayedDispatcherTask(null, delay, method));
 }
Exemplo n.º 29
0
        public async Task <ViewLifetimeControl> OpenAsync(Type page, object parameter = null, string title = null,
                                                          ViewSizePreference size     = ViewSizePreference.UseHalf, int session = 0, string id = "0")
        {
            WriteLine($"Page: {page}, Parameter: {parameter}, Title: {title}, Size: {size}");

            var currentView = ApplicationView.GetForCurrentView();

            title = title ?? currentView.Title;



            if (parameter != null && _windows.TryGetValue(parameter, out DispatcherWrapper value))
            {
                var newControl = await value.Dispatch(async() =>
                {
                    var control    = ViewLifetimeControl.GetForCurrentView();
                    var newAppView = ApplicationView.GetForCurrentView();

                    var preferences        = ViewModePreferences.CreateDefault(ApplicationViewMode.Default);
                    preferences.CustomSize = new Windows.Foundation.Size(360, 640);

                    await ApplicationViewSwitcher
                    .SwitchAsync(newAppView.Id, currentView.Id, ApplicationViewSwitchingOptions.Default);

                    return(control);
                }).ConfigureAwait(false);

                return(newControl);
            }
            else
            {
                var newView    = CoreApplication.CreateNewView();
                var dispatcher = new DispatcherWrapper(newView.Dispatcher);

                if (parameter != null)
                {
                    _windows[parameter] = dispatcher;
                }

                var bounds = Window.Current.Bounds;

                var newControl = await dispatcher.Dispatch(async() =>
                {
                    var newWindow    = Window.Current;
                    var newAppView   = ApplicationView.GetForCurrentView();
                    newAppView.Title = title;

                    var control       = ViewLifetimeControl.GetForCurrentView();
                    control.Released += (s, args) =>
                    {
                        if (parameter != null)
                        {
                            _windows.TryRemove(parameter, out DispatcherWrapper ciccio);
                        }

                        newWindow.Close();
                    };

                    var nav = BootStrapper.Current.NavigationServiceFactory(BootStrapper.BackButton.Ignore, BootStrapper.ExistingContent.Exclude, session, id, false);
                    control.NavigationService = nav;
                    nav.Navigate(page, parameter);
                    newWindow.Content = BootStrapper.Current.CreateRootElement(nav);
                    newWindow.Activate();

                    await ApplicationViewSwitcher
                    .TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, currentView.Id, size);
                    //newAppView.TryResizeView(new Windows.Foundation.Size(360, bounds.Height));
                    newAppView.TryResizeView(new Windows.Foundation.Size(360, 640));

                    return(control);
                }).ConfigureAwait(false);

                return(newControl);
            }
        }
Exemplo n.º 30
0
        public async Task <ViewLifetimeControl> OpenAsync(Func <UIElement> content, object parameter, double width, double height)
        {
            if (_windows.TryGetValue(parameter, out DispatcherWrapper value))
            {
                var newControl = await value.Dispatch(async() =>
                {
                    var control    = ViewLifetimeControl.GetForCurrentView();
                    var newAppView = ApplicationView.GetForCurrentView();

                    var preferences        = ViewModePreferences.CreateDefault(ApplicationViewMode.CompactOverlay);
                    preferences.CustomSize = new Size(width, height);

                    await ApplicationViewSwitcher
                    .TryShowAsViewModeAsync(newAppView.Id, ApplicationViewMode.CompactOverlay, preferences);

                    return(control);
                }).ConfigureAwait(false);

                return(newControl);
            }
            else
            {
                var newView    = CoreApplication.CreateNewView();
                var dispatcher = new DispatcherWrapper(newView.Dispatcher);
                _windows[parameter] = dispatcher;

                var bounds = Window.Current.Bounds;

                var newControl = await dispatcher.Dispatch(async() =>
                {
                    var newWindow     = Window.Current;
                    newWindow.Closed += (s, args) =>
                    {
                        _windows.TryRemove(parameter, out DispatcherWrapper ciccio);
                    };
                    newWindow.CoreWindow.Closed += (s, args) =>
                    {
                        _windows.TryRemove(parameter, out DispatcherWrapper ciccio);
                    };

                    var newAppView           = ApplicationView.GetForCurrentView();
                    newAppView.Consolidated += (s, args) =>
                    {
                        _windows.TryRemove(parameter, out DispatcherWrapper ciccio);
                        newWindow.Close();
                    };

                    var control       = ViewLifetimeControl.GetForCurrentView();
                    control.Released += (s, args) =>
                    {
                        _windows.TryRemove(parameter, out DispatcherWrapper ciccio);
                        newWindow.Close();
                    };

                    newWindow.Content = content();
                    newWindow.Activate();

                    var preferences        = ViewModePreferences.CreateDefault(ApplicationViewMode.CompactOverlay);
                    preferences.CustomSize = new Size(width, height);

                    await ApplicationViewSwitcher
                    .TryShowAsViewModeAsync(newAppView.Id, ApplicationViewMode.CompactOverlay, preferences);

                    return(control);
                }).ConfigureAwait(false);

                return(newControl);
            }
        }
Exemplo n.º 31
0
        public async Task OpenAsync(Type page, object parameter = null, string title = null, ViewSizePreference size = ViewSizePreference.UseHalf)
        {
            var currentView = ApplicationView.GetForCurrentView();
            title = title ?? currentView.Title;

            var newView = CoreApplication.CreateNewView();
            var dispatcher = new DispatcherWrapper(newView.Dispatcher);
            await dispatcher.DispatchAsync(async () =>
            {
                var newWindow = Window.Current;
                var newAppView = ApplicationView.GetForCurrentView();
                newAppView.Title = title;

                var frame = BootStrapper.Current.NavigationServiceFactory(BootStrapper.BackButton.Ignore, BootStrapper.ExistingContent.Exclude);
                frame.Navigate(page, parameter);
                newWindow.Content = frame.Frame;
                newWindow.Activate();

                await ApplicationViewSwitcher
                    .TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, currentView.Id, size);
            });
        }
Exemplo n.º 32
0
 public void Attach(DependencyObject associatedObject)
 {
     AssociatedObject = associatedObject;
     _dispatcher = WindowWrapper.Current().Dispatcher;
     BootStrapper.BackRequested += BootStrapper_BackRequested;
 }