我决定为我的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要求的截图:
答案 0 :(得分:0)
我开始怀疑问题是你正试图像这样创建Page1
:
<local:Page1 />
...但是在local
为WpfApplication1
而不是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>
对不起,我浪费你的时间在这里的盲道上。