C# 单击按钮时在两个xaml页面之间进行更改

C# 单击按钮时在两个xaml页面之间进行更改,c#,visual-studio,xaml,visual-studio-2017,C#,Visual Studio,Xaml,Visual Studio 2017,我正在visual studio 2017中创建一个应用程序。我有两个.xaml页面,当单击按钮时,我想在这两个页面之间切换。到目前为止,我的代码是: private void bakingButton(object sender, RoutedEventArgs e) { CookingMenu cooking = new CookingMenu(); cooking.show(); } 我所在的页面名为Baki

我正在visual studio 2017中创建一个应用程序。我有两个.xaml页面,当单击按钮时,我想在这两个页面之间切换。到目前为止,我的代码是:

private void bakingButton(object sender, RoutedEventArgs e)
        {
            CookingMenu cooking = new CookingMenu();
            cooking.show();
        }
我所在的页面名为BakingMenu.xaml,我想转到CookingMenu.xaml。但是,这会给出错误消息:
找不到类型或命名空间名称“CookingMenu”(是否缺少using指令或程序集引用?


我是否需要在代码中的其他地方引用其他文件,还是缺少其他文件?

您需要包括对定义了
CookingMenu
的地方的引用;特别是在其中定义的命名空间。如果您在Visual Studio项目的同一文件夹中创建了
CookingMenu.xaml
BakingMenu.xaml
,并将它们的名称空间保留为默认生成的名称空间,则它们将位于同一名称空间中,您不需要引用

但是,如果您在不同的文件夹中创建了它们,或者编辑了它们的名称空间,则它们位于不同的名称空间中,您需要一个引用

想象一下,您正在使用页面(类)的名字,但编译器不知道您指的是哪个“Joe”。你需要使用它的全名

您可以在线进行此引用(尽管每次引用
烹饪菜单时都需要使用它):

其中,
NameSpace
替换为在中声明的名称空间
CookingMenu
(您可以通过打开
CookingMenu
的C#文件看到,并查看顶部附近的位置…它可能包含几个由句点分隔的单词)。示例名称空间可能类似于
MyApp.Models.Class
。默认情况下,它环绕类定义(因此它是最外层的一组花括号)。不要在引用中包含“名称空间”,而只是在该行中包含它后面的所有内容

或者,您可以在文件顶部放置一个名称空间引用,然后不需要在每个引用(在该文件中)中都包含名称空间:

然后,您可以使用已编写的代码

以下是有关使用指令的
的文档:


希望有帮助

两个文件都存储在同一文件夹中,并且都具有相同的命名空间。我使用名称空间添加了
行,但它没有改变任何东西。我假设您将“名称空间”替换为存储它们的实际名称空间。如果是这样,可能是Visual Studio中的错误?尝试清理您的项目,然后重新构建它(都是从Visual Studio中的“项目”菜单中创建的。另外,如果您看到
CookingMenu
下的红色错误行,请将鼠标悬停在该项目上,然后单击出现的小灯泡图标,然后查看其内容。
NameSpace.CookingMenu cooking = new NameSpace.CookingMenu();
using NameSpace;