我正在将WPF XBAP应用程序转换为WPF桌面应用程序.我让它在桌面上运行,但我现在正在尝试将页面引用更改为Window引用.
'MyApp.StartForm' root element is not valid for navigation.
Run Code Online (Sandbox Code Playgroud)
我已经尝试创建这个应用程序的简单版本并转换它,这工作正常,因此在使用Window标签时,XAML中必定存在导致此问题的内容.我的问题涉及我如何调查这一点.目前,我得到的只是这个错误,伴随着"无源可用"屏幕; 没有显示堆栈位置,"Show Disassembly"不起作用.除了系统地评论XAML的各个块直到它工作,有没有办法解决这个问题是什么?
WPF应用程序中的导航只能在页面之间完成.错误显示是因为您正在尝试"导航"到现在的窗口,这是不可能的.
不要将您的页面转换为窗口,而是创建一个带有Frame控件的新窗口.A Frame可用于托管您现有的页面 - 这些页面应保持原样,不能更改为Windows.
小智 6
关于它无法在框架中托管窗口并不完全准确,以下代码将为您完成
public void HostWindowInFrame(Frame fraContainer, Window win) {
object tmp = win.Content;
win.Content = null;
fraContainer.Content = new ContentControl() { Content = tmp };
}
Run Code Online (Sandbox Code Playgroud)