예제 #1
0
파일: Picker.cs 프로젝트: shawnoster/kudu
        private void OpenPickerPage()
        {
            if (null == PickerPageUri)
            {
                throw new ArgumentException("PickerPageUri property must not be null.");
            }

            if (null == _frame)
            {
                // Hook up to necessary events and navigate
                _frame = Application.Current.RootVisual as PhoneApplicationFrame;
                if (null != _frame)
                {
                    _frameContentWhenOpened = _frame.Content;

                    // Save and clear host page transitions for the upcoming "popup" navigation
                    UIElement frameContentWhenOpenedAsUIElement = _frameContentWhenOpened as UIElement;
                    if (null != frameContentWhenOpenedAsUIElement)
                    {
                        _savedNavigationInTransition = TransitionService.GetNavigationInTransition(frameContentWhenOpenedAsUIElement);
                        TransitionService.SetNavigationInTransition(frameContentWhenOpenedAsUIElement, null);
                        _savedNavigationOutTransition = TransitionService.GetNavigationOutTransition(frameContentWhenOpenedAsUIElement);
                        TransitionService.SetNavigationOutTransition(frameContentWhenOpenedAsUIElement, null);
                    }

                    _frame.Navigated         += OnFrameNavigated;
                    _frame.NavigationStopped += OnFrameNavigationStoppedOrFailed;
                    _frame.NavigationFailed  += OnFrameNavigationStoppedOrFailed;

                    _frame.Navigate(PickerPageUri);
                }
            }
        }
        /// <summary>
        /// Opens the page to select the date or time value
        /// </summary>
        private void OpenPickerPage(DateTimePickerType type)
        {
            string pickerPageName = type == DateTimePickerType.Date ? "DatePickerPage.xaml" : "TimePickerPage.xaml";

            Uri pickerPageUri = new System.Uri("/Microsoft.Phone.Controls.Toolkit;component/DateTimePickers/" +
                                               pickerPageName + "?dummy=" + Guid.NewGuid().ToString(), UriKind.Relative);

            if (null == _frame)
            {
                // Hook up to necessary events and navigate
                _frame = Application.Current.RootVisual as PhoneApplicationFrame;
                if (null != _frame)
                {
                    _frameContentWhenOpened = _frame.Content;

                    // Save and clear host page transitions for the upcoming "popup" navigation
                    UIElement frameContentWhenOpenedAsUIElement = _frameContentWhenOpened as UIElement;
                    if (null != frameContentWhenOpenedAsUIElement)
                    {
                        _savedNavigationInTransition = TransitionService.GetNavigationInTransition(frameContentWhenOpenedAsUIElement);
                        TransitionService.SetNavigationInTransition(frameContentWhenOpenedAsUIElement, null);
                        _savedNavigationOutTransition = TransitionService.GetNavigationOutTransition(frameContentWhenOpenedAsUIElement);
                        TransitionService.SetNavigationOutTransition(frameContentWhenOpenedAsUIElement, null);
                    }

                    _frame.Navigated         += OnFrameNavigated;
                    _frame.NavigationStopped += OnFrameNavigationStoppedOrFailed;
                    _frame.NavigationFailed  += OnFrameNavigationStoppedOrFailed;

                    _frame.Navigate(pickerPageUri);
                }
            }
        }
예제 #3
0
        private void OpenPickerPage()
        {
            if ((Uri)null == this.PickerPageUri)
            {
                throw new ArgumentException("PickerPageUri property must not be null.");
            }
            if (this._frame != null)
            {
                return;
            }
            this._frame = Application.Current.RootVisual as PhoneApplicationFrame;
            if (this._frame == null)
            {
                return;
            }
            this._frameContentWhenOpened = this._frame.Content;
            UIElement element = this._frameContentWhenOpened as UIElement;

            if (element != null)
            {
                this._savedNavigationInTransition = TransitionService.GetNavigationInTransition(element);
                TransitionService.SetNavigationInTransition(element, (NavigationInTransition)null);
                this._savedNavigationOutTransition = TransitionService.GetNavigationOutTransition(element);
                TransitionService.SetNavigationOutTransition(element, (NavigationOutTransition)null);
            }
            this._frame.Navigated         += new NavigatedEventHandler(this.OnFrameNavigated);
            this._frame.NavigationStopped += new NavigationStoppedEventHandler(this.OnFrameNavigationStoppedOrFailed);
            this._frame.NavigationFailed  += new NavigationFailedEventHandler(this.OnFrameNavigationStoppedOrFailed);
            this._frame.Navigate(this.PickerPageUri);
        }
예제 #4
0
            /**
             * @author Ciprian Filipas
             * @brief Function responsible with the open action for the picker page.
             */
            private void OpenPickerPage()
            {
                if (null == mFrame)
                {
                    // Hook up to necessary events and navigate
                    mFrame = Application.Current.RootVisual as PhoneApplicationFrame;
                    if (null != mFrame)
                    {
                        mFrameContentWhenOpened = mFrame.Content;

                        // Save and clear host page transitions for the upcoming "popup" navigation
                        UIElement frameContentWhenOpenedAsUIElement = mFrameContentWhenOpened as UIElement;
                        if (null != frameContentWhenOpenedAsUIElement)
                        {
                            mSavedNavigationInTransition = TransitionService.GetNavigationInTransition(frameContentWhenOpenedAsUIElement);
                            TransitionService.SetNavigationInTransition(frameContentWhenOpenedAsUIElement, null);
                            mSavedNavigationOutTransition = TransitionService.GetNavigationOutTransition(frameContentWhenOpenedAsUIElement);
                            TransitionService.SetNavigationOutTransition(frameContentWhenOpenedAsUIElement, null);
                        }

                        mFrame.Navigated         += OnFrameNavigated;
                        mFrame.NavigationStopped += OnFrameNavigationStoppedOrFailed;
                        mFrame.NavigationFailed  += OnFrameNavigationStoppedOrFailed;

                        NumberPickerPageCustomUriString customString = new NumberPickerPageCustomUriString();
                        customString.Max = Max;
                        customString.Min = Min;

                        mFrame.Navigate(new Uri(customString.UriString, UriKind.RelativeOrAbsolute));
                    }
                }
            }
예제 #5
0
        public void Show()
        {
            if (_frame == null)
            {
                // Hook up to necessary events and navigate
                _frame = Application.Current.RootVisual as PhoneApplicationFrame;
                _frameContentWhenOpened = _frame.Content;

                var frameContentWhenOpenedAsUiElement = _frameContentWhenOpened as UIElement;
                if (null != frameContentWhenOpenedAsUiElement)
                {
                    _savedNavigationInTransition = TransitionService.GetNavigationInTransition(frameContentWhenOpenedAsUiElement);
                    TransitionService.SetNavigationInTransition(frameContentWhenOpenedAsUiElement, null);
                    _savedNavigationOutTransition = TransitionService.GetNavigationOutTransition(frameContentWhenOpenedAsUiElement);
                    TransitionService.SetNavigationOutTransition(frameContentWhenOpenedAsUiElement, null);
                }

                _frame.Navigated += HandleFrameNavigated;

                if (_frame.GetType() == typeof(PhoneApplicationFrame))
                {
                    _frame.NavigationStopped += HandleFrameNavigationStoppedOrFailed;
                }

                _frame.NavigationFailed += HandleFrameNavigationStoppedOrFailed;

                _frame.Navigate(_pageUri);
            }
        }
예제 #6
0
        private void OpenPickerPage()
        {
            if (null == this.PickerPageUri)
            {
                throw new ArgumentException("PickerPageUri property must not be null.");
            }
            if (this._frame != null)
            {
                return;
            }
            this._frame = Application.Current.RootVisual as PhoneApplicationFrame;
            if (this._frame == null)
            {
                return;
            }
            this._frameContentWhenOpened = ((ContentControl)this._frame).Content;
            UIElement contentWhenOpened = this._frameContentWhenOpened as UIElement;

            if (contentWhenOpened != null)
            {
                this._savedNavigationInTransition = TransitionService.GetNavigationInTransition(contentWhenOpened);
                TransitionService.SetNavigationInTransition(contentWhenOpened, null);
                this._savedNavigationOutTransition = TransitionService.GetNavigationOutTransition(contentWhenOpened);
                TransitionService.SetNavigationOutTransition(contentWhenOpened, null);
            }
            // ISSUE: method pointer
            ((Frame)this._frame).Navigated += (new NavigatedEventHandler(this.OnFrameNavigated));
            // ISSUE: method pointer
            ((Frame)this._frame).NavigationStopped += (new NavigationStoppedEventHandler(this.OnFrameNavigationStoppedOrFailed));
            // ISSUE: method pointer
            ((Frame)this._frame).NavigationFailed += (new NavigationFailedEventHandler(this.OnFrameNavigationStoppedOrFailed));
            ((Frame)this._frame).Navigate(this.PickerPageUri);
        }
예제 #7
0
        private void OpenPickerPage(DateTimePickerType type)
        {
            var page = type == DateTimePickerType.Date
                           ? "/Microsoft.Phone.Controls.Toolkit;component/DateTimePickers/DatePickerPage.xaml?dummy="
                           : "/Coding4Fun.Toolkit.Controls;component/ValuePicker/TimeSpanPicker/TimespanPickerPage.xaml?dummy=";

            page += Guid.NewGuid();

            var pickerPageUri = new Uri(page, UriKind.Relative);

            if (_frame != null)
            {
                return;
            }
            _frame = Application.Current.RootVisual as PhoneApplicationFrame;

            if (_frame == null)
            {
                return;
            }

            _frameContentWhenOpened = _frame.Content;

            var uiElement = _frameContentWhenOpened as UIElement;

            if (null != uiElement)
            {
                _savedNavigationInTransition = TransitionService.GetNavigationInTransition(uiElement);
                TransitionService.SetNavigationInTransition(uiElement, null);
                _savedNavigationOutTransition = TransitionService.GetNavigationOutTransition(uiElement);
                TransitionService.SetNavigationOutTransition(uiElement, null);
            }

            if (type == DateTimePickerType.Date)
            {
                _frame.Navigated += OnDateFrameNavigated;
            }
            else
            {
                _frame.Navigated += OnTimeFrameNavigated;
            }
            _frame.NavigationStopped += OnFrameNavigationStoppedOrFailed;
            _frame.NavigationFailed  += OnFrameNavigationStoppedOrFailed;

            _frame.Navigate(pickerPageUri);
        }
예제 #8
0
        private void AppBarButtonChooseDate_Click(object sender, EventArgs e)
        {
            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                var frame       = (PhoneApplicationFrame)Application.Current.RootVisual;
                var currentPage = (PhoneApplicationPage)frame.Content;

                // Save the transitions
                oldIn  = TransitionService.GetNavigationInTransition(currentPage);
                oldOut = TransitionService.GetNavigationOutTransition(currentPage);

                // Clear the transitions
                TransitionService.SetNavigationInTransition(currentPage, null);
                TransitionService.SetNavigationOutTransition(currentPage, null);

                NavigationService.Navigate(new Uri("/Microsoft.Phone.Controls.Toolkit;component/DateTimePickers/DatePickerPage.xaml", UriKind.Relative));
            });
        }