我非常感谢你提供帮助。我有一个名为Public Library的C#解决方案,其中包含不同的项目。一个项目名为Books.View,我正在研究这是在启动时加载的主页面,用户从这些页面执行数据输入和其他任务,另一个项目称为Menu。 Menu项目包含管理员可以进行更改的应用程序设置。我在MainWindow.xaml页面中添加了一个Settings按钮,该页面位于Books.View项目中,我希望它能够打开位于Menu项目中的MainSettings.xaml。
我在这里搜索了类似问题的不同问题,例如: How to navigate to another project inside same solution
Redirect to another page in different project of same solution
它提到添加引用,所以我在Books项目中添加了Books.View项目的引用。 我在主项目Books.View中的设置按钮中尝试了以下代码:
NavigationService.Navigate(new Uri("/Menu;/MainSettings.xaml", UriKind.Relative));
然后我收到一条错误,指出非静态字段,方法或属性'System.Windows.Navigation.NavigationService.Navigate(System.Uri)'需要对象引用。
对此有任何帮助将不胜感激。
谢谢
答案 0 :(得分:1)
查看URI scheme references for XAML in MSDN。
当您从单独的项目引用XAML时,您将必须使用完全限定的URI。假设您的其他项目程序集名称是Menu,它应该类似于:
NavigationService.Navigate(new Uri("pack://application:,,,/Menu;component/MainSettings.xaml", UriKind.Absolute));
上面是基于单独程序集中的XAML URI的引用(在msdn link中记录):
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml