2017-05-25 35 views
0

我決定爲我的WPF項目創建一個基本頁面。 當我在項目的命名空間中創建基頁和一個繼承的頁面時,它工作正常,但是當我在項目中創建一個名爲Pages的文件夾,並且基本頁面和文件夾內的繼承頁面以及它的名稱空間時,不存在於名稱空間「clr-namespace:WpfApplication2.Pages」中。基本頁面wpf。名稱X不存在於命名空間Y

這是基礎頁面。這只是一個普通的類,沒有XAML。

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

繼承頁面的.cs文件

namespace WpfApplication2.Pages 
{ 

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

繼承頁的第一行。部分我從頁面更改爲本地: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賓吉要求:

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

+0

我能夠得到這個確切的代碼工作。我的懷疑是有其他事情正在發生。你是否在* Pages文件夾中創建*'Page1',或將它移動到那裏?在那裏移動可能會造成破壞。 –

+0

我在裏面創建了它。這是BasePage'使用系統; using System.Collections.Generic;使用System.Linq的 ; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; 命名空間WpfApplication4.Pages { 公共類的BasePage:頁 {} } ' – Myoxidae

+0

Page1.xaml.cs'使用系統; using System.Collections.Generic;使用System.Linq的 ; using System.Text; using System.Threading.Tasks;使用System.Windows的 ; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfApplication4。頁 { 公共部分類第1頁:BasePage的 { 公共第1頁() { 的InitializeComponent(); } } } ' – Myoxidae

回答

0

我開始懷疑,問題是你想創建出象這樣Page1

<local:Page1 /> 

。 ..但在一個XAML文件中,localWpfApplication1而不是WpfApplication1.Pages。例如,MainWindow。當我這樣做,我看到「名......不存在」錯誤:

The name "Page1" does not exist in the namespace "clr-namespace:WpfApplication1". WpfApplication1 C:\Users\edplunkett\Documents\Visual Studio 2015\Projects\Test2\WpfApplication1\MainWindow.xaml 14

在這種情況下,只是定義另一個爲XMLNS WpfApplication1.Pages

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

對不起,我在浪費你的時間盲目的小巷在這裏。

+0

我不明白你的答案。什麼是根元素,並使用Page作爲根元素?你的意思是什麼? – Myoxidae

+0

我得到命名空間'WpfApplication2.Pages'已經包含'BasePage'的定義,並且類型'Page1'已經使用Page作爲根元素將相同的參數類型錯誤定義爲名爲'.ctor'的成員。問題是,當我在項目的命名空間中創建BasePage和Page1時它工作正常,並且它在文件夾內不起作用。 – Myoxidae

+0

我創建了一個新項目,現在我沒有收到任何錯誤,但應用程序不會開始說這是構建錯誤......當我遇到build + IntelliSense產生的問題時,會發生這種情況,當我將其更改爲僅構建I當Page1.xaml中的根元素爲Page,並且當我使用localhost:BasePage作爲根元素時,獲取「Page1」的部分聲明不得指定不同的基類。我得到的BasePage不存在於名稱空間「clr-namespace: WpfApplication3.Pages「在構建+智能感知 – Myoxidae

相關問題