I am trying to Navigate to a Xamarin Forms NavigationPage. However I am trying to do it after the Frame has been first loaded up with some "native" UWP pages.
this.rootFrame.Navigate(page.GetType(), param);
This code results in a AccessViolationException. The page object is a Xamarin.Forms.Page but I have also tried it with a NavigationPage(page) wrapper.
The type of the first parameter in the rootFrame.Navigate method is forms:WindowsPage. But in your code you have used ContentPage where under Xamarin.Forms namespace as the first parameter, it is not a WindowsPage. So it would throw exception.
You could not navigate to Xamarin Forms Page in native client project. Because the page used is different in the Xamarin.Forms and UWP. The page is inherited Windows.UI.Xaml.Controls.Page in uwp, and it is inherited TemplatedPage.
I am trying to create a hybrid UWP app that starts with Native Pages and later launches some XF Pages. The official Xamarin Forms samples have an example of this for iOS and Android.
For your requirement, you could use the DependencyService to achieve that go back from ContentPage to WindowsPage. For more detail please refer to the following code .
MainPage.xaml.cs
public sealed partial class MainPage
{
public MainPage()
{
this.InitializeComponent();
}
private void MyBtn_Click(object sender, RoutedEventArgs e)
{
LoadApplication(new App65.App());
}
}
MainPage.xaml(Portable)
<StackLayout>
<Label Text="Welcome to Xamarin Forms!"
VerticalOptions="Center"
HorizontalOptions="Center" />
<Button Text="GoBack" Clicked="Button_Clicked"/>
</StackLayout>
GoBackImplementation.cs
[assembly: Xamarin.Forms.Dependency(typeof(GoBackImplementation))]
namespace App65.UWP
{
public class GoBackImplementation : IGoBack
{
public void GoBack()
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame != null)
{
rootFrame = new Frame();
rootFrame.NavigationFailed += RootFrame_NavigationFailed;
Window.Current.Content = rootFrame;
}
if (rootFrame.Content == null)
{
rootFrame.Navigate(typeof(MainPage));
}
}
private void RootFrame_NavigationFailed(object sender, Windows.UI.Xaml.Navigation.NavigationFailedEventArgs e)
{
throw new NotImplementedException();
}
}
}

I have upload code sample to git hub. Please check.