【问题标题】:Open a xaml page from one project in another project in the same solution从同一解决方案中另一个项目中的一个项目打开一个 xaml 页面
【发布时间】:2014-08-18 16:51:46
【问题描述】:

感谢您对此提供的任何帮助。我有一个名为 Public Library 的 C# 解决方案,其中包含不同的项目。一个名为 Books.View 的项目是我正在处理的,这是启动时加载的主页面,用户从这些页面执行数据输入和其他任务,另一个项目称为 Menu。 Menu 项目包含管理员可以进行更改的应用程序设置。我在 Books.View 项目中的 MainWindow.xaml 页面中添加了一个设置按钮,我希望它打开位于 Menu 项目中的 MainSettings.xaml。

我在这里搜索了有关类似问题的不同问题,例如: How to navigate to another project inside same solution

Redirect to another page in different project of same solution

提到了添加引用,所以我在 Menu 项目中添加了对 Books.View 项目的引用。 我在主项目 Books.View 的设置按钮中尝试了以下代码:

NavigationService.Navigate(new Uri("/Menu;/MainSettings.xaml", UriKind.Relative));

然后我收到一条错误消息,指出非静态字段、方法或属性“System.Windows.Navigation.NavigationService.Navigate(System.Uri)”需要对象引用。

我们将不胜感激。

谢谢

【问题讨论】:

  • 我想你在找this
  • @Cyber​​Sensei 您确定 Menu 是您项目中包含 MainSettingx.xaml 页面的父文件夹吗?
  • @Kulasangar 是的,菜单项目是包含页面 MainSettings.xaml 的父文件夹,我在启动时加载的项目是加载到 MainWindow.xaml 的 Books,用户可以在其中进行数据输入。跨度>

标签: c# xaml


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-18
    • 2022-11-30
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多