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>