我是c#新手。为了解决这个问题,需要按照以下步骤进行。、
WPF应用(.NET Framework)
- 解决问题
首先,确保项目的类型为WPF应用(.NET Framework);
然后,代码的位置应正确处于项目的MainWindow.xaml.cs;
最后,将MainWindow.xaml打开,左下角的Class应该根据.cs文件中的代码来改,即[namespace名].类名。如<Window
x:Class=“HookWndProc.Form1”……>。
防止图加载不出来:
这里是MainWindow.xaml.cs中的代码。
namespace HookWndProc
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
这里是MainWindow.xaml中的窗口脚本:
<Window x:Class="HookWndProc.Form1"
...
</Window>
参考文章:https://www.cnblogs.com/jyj666/p/13926769.html
- Form1”的分部声明一定不能指定不同的基类
将xaml和cs里面的类型改到一致。
可以参考:https://blog.csdn.net/weixin_43976890/article/details/100121820
但是,我这个项目的问题,在于应该使用Windows窗体应用(Form),而不是WPF(Window/Page)。
Windows窗体应用(.NET Framework)
这类项目如果报错InitializeComponent提示不存在,那么应该注意的是,在项目创建完成后,进行如下操作:
将代码放入解决方案/项目/Form1.cs中
namespace 命名应该与项目名一致。有的项目名到namespace会自动转换,但是只要跟Form1.cs中原来自动生成的一致就可以了。这样,就不会报错InitializeComponent了。
此时可能报错:
“Form1”的分部声明一定不能指定不同的基类,则应进行如下操作:
如果开发多个窗口(项目),那么看一下窗口的继承类是否一致。 参考这个:https://www.jianshu.com/p/6f9525de3137。
本人是测试代码运行,所以删除了为了尝试而创建的其他项目(原来方案下有多个项目,WPF和Windows窗体)之后,只留下了一个 windows窗体应用,就不报错了。