private void OpenPickerPage()
{
if (null == PickerPageUri)
{
throw new ArgumentException("PickerPageUri");
}
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;
_hasPickerPageOpen = true;
_frame.Navigate(PickerPageUri);
}
}
}