C# 类型名称';图形用户界面&x27;不存在于类型';我的项目&x27;

C# 类型名称';图形用户界面&x27;不存在于类型';我的项目&x27;,c#,wpf,xaml,C#,Wpf,Xaml,我在胡思乱想,不知道出了什么问题 项目名称空间MyProject GUI元素名称空间MyProject.GUI 在MyProject.GUI中有三个元素:Form、Keyboard和SelectWrapper 好了(不需要.xaml,只需要.cs) 和键盘cs namespace MyProject.GUI { public partial class Keyboard : UserControl { ... 和键盘xaml <UserControl

我在胡思乱想,不知道出了什么问题

  • 项目名称空间
    MyProject
  • GUI元素名称空间
    MyProject.GUI
MyProject.GUI中有三个元素:
Form
Keyboard
SelectWrapper

好了(不需要.xaml,只需要.cs)

和键盘cs

namespace MyProject.GUI
{
   public partial class Keyboard : UserControl
   {
   ...
和键盘xaml

<UserControl 
         x:Class="MyProject.GUI.Keyboard"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    
并形成XAML

 <Window      
         x:Class="MyProject.GUI.Form"
         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:gui="clr-namespace:MyProject.GUI"

      ...

      <gui:Keyboard
      <gui:SelectWrapper

键盘
类驻留在另一个名称空间中,即
InvoiceFlow.GUI
,不是吗

<Window      
     x:Class="MyProject.GUI.Form"
     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:gui="clr-namespace:MyProject.GUI"
 xmlns:kbd="clr-namespace:InvoiceFlow.GUI"
 ...
  <kbd:Keyboard
  <gui:SelectWrapper

键盘
类驻留在另一个名称空间中,即
InvoiceFlow.GUI
,不是吗

<Window      
     x:Class="MyProject.GUI.Form"
     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:gui="clr-namespace:MyProject.GUI"
 xmlns:kbd="clr-namespace:InvoiceFlow.GUI"
 ...
  <kbd:Keyboard
  <gui:SelectWrapper

如果编译器说
MyProject
是一个类型,我会先假设在某个地方有一个同名的类型。通过在
MyProject.GUI
名称空间中定义一个名为
MyProject
的类,我能够重现这一点:

namespace MyProject.GUI
{
    public partial class Form : Window
    {
        public Form()
        { ... }
    }

    public class MyProject
    {
    }

    public class SelectWrapper
    {
    }
}
XAML


错误CS0426类型“MyProject”中不存在类型名称“GUI”
错误CS0426类型“MyProject”中不存在类型名称“GUI”
错误名称“SelectWrapper”在命名空间“clr namespace:MyProject.GUI”中不存在


因此,我会在项目中或解决方案中的其他地方寻找一个同名的类

如果编译器说
MyProject
是一个类型,我会先假设某个地方有一个名为该名称的类型。通过在
MyProject.GUI
名称空间中定义一个名为
MyProject
的类,我能够重现这一点:

namespace MyProject.GUI
{
    public partial class Form : Window
    {
        public Form()
        { ... }
    }

    public class MyProject
    {
    }

    public class SelectWrapper
    {
    }
}
XAML


错误CS0426类型“MyProject”中不存在类型名称“GUI”
错误CS0426类型“MyProject”中不存在类型名称“GUI”
错误名称“SelectWrapper”在命名空间“clr namespace:MyProject.GUI”中不存在


因此,我会在项目中或解决方案中的其他地方寻找一个同名的类

你有一个名为
MyProject
的类吗?我可以通过创建一个类
名称空间Foo{public class Foo{}}
,在名为
Foo
的项目中重现这个确切的错误。我不知道它在XAML中是如何工作的,但是您可以使用
而不是
来区分类和名称空间。如果您编写了
x:Class=“MyProject::GUI…”
,将XAML备份到某个地方。删除和之间的所有内容。整理属性。构建解决方案。切换到窗口的设计器。打开工具箱-确保在那里看到您的usercontrol。将其拖放到窗口。查看designer对属性所做的操作。与已备份的类进行比较。还有一件事-如果您想在工具箱中看到
SelectWrapper
,它应该位于不同的程序集中。是否有一个名为
MyProject
的类?我可以通过创建一个类
名称空间Foo{public class Foo{}}
,在名为
Foo
的项目中重现这个确切的错误。我不知道它在XAML中是如何工作的,但是您可以使用
而不是
来区分类和名称空间。如果您编写了
x:Class=“MyProject::GUI…”
,将XAML备份到某个地方。删除和之间的所有内容。整理属性。构建解决方案。切换到窗口的设计器。打开工具箱-确保在那里看到您的usercontrol。将其拖放到窗口。查看designer对属性所做的操作。与您备份的文件进行比较。还有一件事-如果您想在工具箱中看到
SelectWrapper
,它应该在不同的程序集中。它不会。我粘贴到这里时没有更正它。我的宝贝没有。我粘贴到这里时没有更正它。我的错
<Window 
    x:Class="MyProject.GUI.Form"
    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:gui="clr-namespace:MyProject.GUI"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <gui:SelectWrapper
            x:Key="test"
            />
    </Window.Resources>