基页wpf。名称X在名称空间Y中不存在

时间:2017-05-25 12:35:26

标签: wpf namespaces

我决定为我的WPF项目创建一个Base页面。 当我在项目的命名空间内创建基页和继承的页面时,它可以正常工作,但是当我在项目中创建一个名为Pages的文件夹,并在文件夹中创建一个基页和一个继承的页面时,它就可以了命名空间它表示命名空间中的BasePage不存在" clr-namespace:WpfApplication2.Pages"。

这是基页。它只是一个没有XAML的普通类。

namespace WpfApplication2.Pages
{
    public class BasePage : Page
    {
    }
}

继承的网页.cs文件

namespace WpfApplication2.Pages
{

   public partial class Page1 : BasePage
   {
      public Page1()
      {
         InitializeComponent();
      }
   }
}

继承页面的第一行。我从Page更改为local的部分:BasePage。它会导致错误。

<local:BasePage x:Class="WpfApplication2.Pages.Page1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  xmlns:local="clr-namespace:WpfApplication2.Pages" 

Ed Plunkett要求的截图:

Screenshot of the project explorer using Page as a rootElement in Page1.xaml

1 个答案:

答案 0 :(得分:0)

我开始怀疑问题是你正试图像这样创建Page1

<local:Page1 />

...但是在localWpfApplication1而不是WpfApplication1.Pages的XAML文件中。以MainWindow为例。当我这样做时,我看到“名字......不存在”错误:

  

名称“Page1”在名称空间“clr-namespace:WpfApplication1”中不存在。 WpfApplication1 C:\ Users \ edplunkett \ Documents \ Visual Studio 2015 \ Projects \ Test2 \ WpfApplication1 \ MainWindow.xaml 14

在这种情况下,只需为WpfApplication1.Pages定义另一个xmlns:

<Window 
    x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApplication1"
    xmlns:pages="clr-namespace:WpfApplication1.Pages"
    mc:Ignorable="d"
    Title="MainWindow" 
    Height="350" 
    Width="525"
    >
    <pages:Page1 
        />
</Window>

对不起,我浪费你的时间在这里的盲道上。