C# 无法识别基本绘图方法BlendState?

C# 无法识别基本绘图方法BlendState?,c#,xna,sprite,draw,alphablending,C#,Xna,Sprite,Draw,Alphablending,我非常擅长编程,但是,我对c#(xna)是新手,我正在按照教程在屏幕上绘制精灵,在绘制方法中使用blendstate方法时无法识别: protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here // Draw

我非常擅长编程,但是,我对c#(xna)是新手,我正在按照教程在屏幕上绘制精灵,在绘制方法中使用blendstate方法时无法识别:

protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            // TODO: Add your drawing code here
            // Draw the sprite.
            spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend); 
//无法识别混合状态(将波形放在下面)


提前谢谢,因为这确实让我很困扰。

我的第一个想法是:如果你把鼠标移到错误上会发生什么?它应该给你一个工具提示,告诉你实际的错误是什么

此外,如果源文件顶部没有使用Microsoft.Xna.Framework.Graphics的
(但是项目引用了Microsoft.Xna.Framework.Graphics.dll,您也需要它),它还将为您提供一个小框,供您单击以添加该using语句(我相信弹出的快捷键是Ctrl-Shift-F10)

您也可以只传入
null
而不是
BlendState.AlphaBlend
,因为这是默认的混合状态(请参阅)



我的第二个想法是,您正在使用旧版本XNA的XNA 4.0教程。是吗?解释了SpriteBatch中的差异。

我的第一个想法是:如果您将鼠标悬停在错误上会发生什么?它应该会给您一个工具提示,其中包含告诉您实际错误的文本

此外,如果源文件顶部没有使用Microsoft.Xna.Framework.Graphics的
(但是项目引用了Microsoft.Xna.Framework.Graphics.dll,您也需要它),它还将为您提供一个小框,供您单击以添加该using语句(我相信弹出的快捷键是Ctrl-Shift-F10)

您也可以只传入
null
而不是
BlendState.AlphaBlend
,因为这是默认的混合状态(请参阅)



我的第二个想法是,您正在使用旧版本XNA的XNA 4.0教程。是吗?解释了SpriteBatch中的差异。

我的代码顶部确实有使用Microsoft.XNA.Framework.Graphics的代码,但是,我找不到任何说明我实现了该引用的内容。我该怎么做?我右键单击ref引用并单击“新建引用”,然后我双击了Microsoft.Xna.Framework,但它没有帮助。错误(当我将鼠标悬停在错误上时)这是:错误1名称“Blendstate”在当前上下文中不存在谢谢,ps,当我将“Blendstate.AlphaBlend”设置为“null”时,它给了我此错误:错误1方法“Begin”没有重载接受“2”arguments@Custard:我已更新了我的答案。我认为您的XNA版本不匹配。@AndrewRussell混合状态是什么仅适用于xna 3.1?@RickardB xna 3.1及更早版本:对于
SpriteBatch
,您只需提供一个
SpriteBlendMode
Begin
并为您进行设置。否则,
GraphicsDevice.RenderState
通过以下属性提供对混合状态各个部分的访问:
AlphaBlendEnable
AlphaBlendOperation
SourceBlend
DestinationBlend
SeparateAlphaBlend
(可能还有其他)。(如果可能,建议更新到XNA 4.0。状态对象非常好。)我的代码顶部有使用Microsoft.Xna.Framework.Graphics的代码,但是,我找不到任何东西表明我实现了该引用。我该怎么做?我右键单击引用,然后单击新建引用,然后双击Microsoft.Xna.Framework,但没有帮助。错误(当我将鼠标移到错误上时)这是:错误1名称“Blendstate”在当前上下文中不存在谢谢,ps,当我将“Blendstate.AlphaBlend”设置为“null”时,它给了我此错误:错误1方法“Begin”没有重载接受“2”arguments@Custard:我已更新了我的答案。我认为您的XNA版本不匹配。@AndrewRussell混合状态是什么仅适用于xna 3.1?@RickardB xna 3.1及更早版本:对于
SpriteBatch
,您只需提供一个
SpriteBlendMode
Begin
并为您进行设置。否则,
GraphicsDevice.RenderState
通过以下属性提供对混合状态各个部分的访问:
AlphaBlendEnable
AlphaBlendOperation
SourceBlend
DestinationBlend
SeparateAlphaBlend
(可能还有其他)。(如果可能,建议更新到XNA 4.0。状态对象非常好。)
            spriteBatch.Draw(myTexture, spritePosition, Color.White);
            spriteBatch.End();

            base.Draw(gameTime);
        }