Unfortunately there isn't anything in the XNA framework which could help you, but there are two other solutions:
The second solution is simpler because you can use it in this way:
System.Windows.Forms.Form form = new System.Windows.Forms.Form();
form.Show();
Then if you want to show the texture in the new form you should create a bitmap, and you can do it in this way (you have to add a reference to System.Drawing and System.IO):
System.IO.MemoryStream ms = new System.IO.MemoryStream();
Texture2D texture = Content.Load<Texture2D>( "Images\\test" ); //example
texture.SaveAsJpeg( ms, texture.Width, texture.Height );
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap( ms );
The complete code could be:
protected override void Update(GameTime gameTime){
//...
ShowForm(CreateBitmap(texture));
base.Update(gameTime);
}
private Bitmap CreateBitmap(Texture2D texture){
System.IO.MemoryStream ms = new System.IO.MemoryStream();
texture.SaveAsJpeg( ms, texture.Width, texture.Height );
return new System.Drawing.Bitmap( ms );
}
private void ShowForm(Bitmap bmp){
System.Windows.Forms.Form form = new System.Windows.Forms.Form();
form.Location = new System.Drawing.Point(100, 100); //example
form.Text = "Texture2D";
form.BackgroundImage = bmp; //Set the texture as background
form.ClientSize = bmp.Size;
form.Show();
}