Na penúltima linha você quis dizer: "...sendo que o desenho não fica sempre na tela, a não ser que eu fique sempre desenhando..." ?
Em seu teste, você tentou algo do tipo:
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
bool podeDesenhar;
MouseState estadoAtual;
MouseState ultimoEstado;
Color cor = Color.White;
Vector2 posicao = Vector2.Zero;
...
...
protected override void Update(GameTime gameTime)
{
this.estadoAtual = Mouse.GetState();
if (this.estadoAtual.LeftButton == ButtonState.Pressed
&& this.ultimoEstado.LeftButton == ButtonState.Released)
{
if (podeDesenhar == true)
{
podeDesenhar = false;
}
else
{
podeDesenhar = true;
}
}
this.ultimoEstado = this.estadoAtual;
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
if (podeDesenhar)
{
this.spriteBatch.Begin();
this.spriteBatch.Draw(imagem, posicao, cor);
this.spriteBatch.End();
}
base.Draw(gameTime);
}
Se não resolveu seu problema, libera, por favor, o seu código do teste.