Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF:网格框架内的加载窗口_Wpf_Grid_Window - Fatal编程技术网

WPF:网格框架内的加载窗口

WPF:网格框架内的加载窗口,wpf,grid,window,Wpf,Grid,Window,我有WPF应用程序和ListBoxItems作为右菜单 当特定的ListBoxItem被选中时,我想加载我创建的名为Home的不同窗口(而不是创建多个网格元素并更改其可见性),因此我有这个网格: <Grid> <Frame Name="MyFrame"/> </Grid> 得到了这个错误: System.InvalidOperationException:“MyApplication.Home”根元素 对于导航无效 " 这是加载其他窗口/页面的正

我有
WPF
应用程序和
ListBoxItems
作为右菜单

当特定的
ListBoxItem
被选中时,我想加载我创建的名为Home的不同
窗口(而不是创建多个
网格
元素并更改其
可见性
),因此我有这个网格:

<Grid>
     <Frame Name="MyFrame"/>
</Grid> 
得到了这个错误:

System.InvalidOperationException:“MyApplication.Home”根元素 对于导航无效

"


这是加载其他窗口/
页面
的正确方法吗?

主页
必须是
页面
用户控件
。不能将
框架的
内容
属性设置为
窗口的实例

如果您想要导航历史,您应该考虑使用<代码>导航服务< /代码> <代码>框架>代码>导航到页面:

MyFrame.NavigationService.Navigate(new Uri("Home.xaml", UriKind.Relative));

窗口和页面有什么不同?是两种不同的类型。窗口只是一个浮动的顶层对象。它不能是任何其他元素的子元素。因此,如果我想用元素加载每个ListBoxItem不同的窗口,我也可以使用Page吗?您可以将
框架的
内容
属性设置为
页面
,该页面包含您想要显示的内容。我想注册到我的ListBoxSelectionChanged事件,我有3个ListBoxItems和3个页面以及每个索引页面会有多大的不同,哪些页面会显示具体的页面,哪些页面需要用当前页面做什么才能消失?
MyFrame.NavigationService.Navigate(new Uri("Home.xaml", UriKind.Relative));