几天后我一直在研究这个错误,但我还没有找到解决方案。
在我的项目' Arcanium'中,抛出此错误:
类型或命名空间名称' GameWindow'不存在于 namespace' Arcanium.Arcanium.ClientSide' (你错过了一个集会吗? 引用?)
[编辑]错误在GameWindow.xaml的第8行抛出
以下是课程: GameWindow.xaml(Arcanium.Clientside):
<Window x:Name="Arcanium" x:Class="Arcanium.ClientSide.GameWindow"
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:Arcanium.ClientSide"
mc:Ignorable="d"
Title="Arcanium" Height="512" Width="512" Activated="OnActivated" Closing="OnClosing" KeyDown="OnKeyDown" KeyUp="OnKeyUp" SizeChanged="OnSizeChanged">
<Grid>
</Grid>
GameWindow.xaml.cs(Arcanium.ClientSide):
using Arcanium.ClientSide.Engine;
using Arcanium.Engine.Graphics;
using Arcanium.Engine.User;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Arcanium.ClientSide {
/// <summary>
/// Interaction logic for GameWindow.xaml
/// </summary>
public partial class GameWindow : Window {
public static int SizeX { get; private set; }
public static int SizeY { get; private set; }
private static GameWindow _window;
public GameWindow() {
InitializeComponent();
_window = this;
}
public static void DrawFrame(FastBitmap frame) {
_window.Background = new ImageBrush(ImageSourceForBitmap(frame.GetBitmap()));
frame.Dispose();
}
private static ImageSource ImageSourceForBitmap(Bitmap bmp) {
var handle = bmp.GetHbitmap();
try {
return Imaging.CreateBitmapSourceFromHBitmap(handle, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
} finally { NativeMethods.DeleteObject(handle); }
}
private void OnActivated(object sender, EventArgs e) {
SizeX = 512;
SizeY = 512;
Game.ActivateGameLoop();
}
private void OnClosing(object sender, System.ComponentModel.CancelEventArgs e) {
Game.Running = false;
}
private void OnKeyDown(object sender, KeyEventArgs e) {
Input.HandleKeyboardPress(e.Key);
}
private void OnKeyUp(object sender, KeyEventArgs e) {
Input.HandleKeyboardRelease(e.Key);
}
private void OnSizeChanged(object sender, SizeChangedEventArgs e) {
throw new NotImplementedException();
}
}
}
(我无法弄清楚格式正确,这是我第一次问这里)
我已经尝试了几件事。
奇怪的是编译器在命名空间中搜索GameWindow&#39; Arcanium.Arcanium.Clientslide&#39;我的班级在Arcanium.ClientSide&#39;。为了防止这种情况,我尝试从类路径中删除Arcanium(GameWindow.xaml,第1行),这导致它找不到事件的方法(在GameWindow.xaml,第8行注册),而不是知道了InitializeComponent()方法,导致我的结论GameWindow.xaml.cs不能再被正确继承了。
我尝试重启Visual Studio和我的整台计算机
我尝试过清理和重建项目
我已尝试将目标平台从x64更改为x32并返回(如this question中所述)
[编辑]我尝试删除Window(两个类)并重新添加它们。一旦我注册了这些事件,就会出现错误。
只有在我尝试构建项目时才会出现此错误。 Visual Studio没有在文本编辑器中标记它。
当我尝试将Xaml中的x:Class路径更改为&#39; GameWindow&#39;时,正如Bijan所要求的那样,它似乎找到了类,但没有找到它中的方法,它将InitializeComponent()标记为不存在。
任何提示?