Exemple #1
0
        private void SetFullScreen()
        {
            object parent = VisualTreeHelper.GetParent((DependencyObject)this);

            while (parent != null)
            {
                BaseCodePageContainer container = parent as BaseCodePageContainer;
                if (container != null)
                {
                    _containerGrid.Children.Remove(_webView);
                    container.FullScreenObject = new Tuple <UIElement, Action <UIElement> >(_webView, callback =>
                    {
                        _webView = callback as WebView;
                        _containerGrid.Children.Add(_webView);
                    });

                    container.IsFullScreen = true;
                    break;
                }
                else
                {
                    parent = VisualTreeHelper.GetParent((DependencyObject)parent);
                }
            }

            if (parent == null)
            {
                throw new ArgumentException("Page must be of type BaseCodePageContainer");
            }
        }
Exemple #2
0
        /// <summary>
        /// Handles setting the page content
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private static void OnContentChanged(Object sender, DependencyPropertyChangedEventArgs args)
        {
            BaseCodePageContainer container = sender as BaseCodePageContainer;

            if (container != null)
            {
                container.Content = container.PageContent;
            }
        }
Exemple #3
0
        /// <summary>
        /// Toggles the fullscreen functionality
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private static void OnIsFullScreenChanged(Object sender, DependencyPropertyChangedEventArgs args)
        {
            BaseCodePageContainer container = sender as BaseCodePageContainer;

            if (container != null)
            {
                ToggleFullScreen(container);
            }
        }
Exemple #4
0
        /// <summary>
        /// Toggles between full screen and standard screen sizes
        /// </summary>
        /// <param name="container"></param>
        private static void ToggleFullScreen(BaseCodePageContainer container)
        {
            if (container.IsFullScreen)
            {
                if (container.FullScreenObject != null)
                {
                    ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
                    container.fullScreenGrid = new Grid();
                    container.fullScreenGrid.HorizontalAlignment = HorizontalAlignment.Stretch;
                    container.fullScreenGrid.VerticalAlignment   = VerticalAlignment.Stretch;

                    Button exitFullScreenButton = new Button()
                    {
                        Content = "Exit Fullscreen"
                    };
                    exitFullScreenButton.Click += (s, a) =>
                    {
                        container.IsFullScreen = false;
                        container.fullScreenGrid.Children.Remove(container.FullScreenObject.Item1);
                        container.FullScreenObject.Item2.Invoke(container.FullScreenObject.Item1);
                    };
                    GridLength gl1 = new GridLength(.95, GridUnitType.Star);
                    GridLength gl2 = new GridLength(.05, GridUnitType.Star);

                    container.fullScreenGrid.RowDefinitions.Add(new RowDefinition()
                    {
                        Height = gl1
                    });
                    container.fullScreenGrid.RowDefinitions.Add(new RowDefinition()
                    {
                        Height = gl2
                    });

                    Grid.SetRow(container.FullScreenObject.Item1 as FrameworkElement, 0);
                    Grid.SetRow(exitFullScreenButton, 1);

                    container.fullScreenGrid.Children.Add(container.FullScreenObject.Item1);
                    container.fullScreenGrid.Children.Add(exitFullScreenButton);

                    container.Content = container.fullScreenGrid;
                }
            }
            else
            {
                if (container.PageContent != null)
                {
                    if (!container.IsApplicationFullScreenDefault)
                    {
                        ApplicationView.GetForCurrentView().ExitFullScreenMode();
                    }
                    container.Content = container.PageContent;
                }
            }
        }