从同一解决方案中的另一个项目中的一个项目打开一个xaml页面

时间:2014-08-18 16:51:47

标签: c# xaml

我非常感谢你提供帮助。我有一个名为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)'需要对象引用。

对此有任何帮助将不胜感激。

谢谢

1 个答案:

答案 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