2013-03-23 3 views
1

Я пытаюсь добавить кнопку так, чтобы она отображалась поверх экрана, который я рисую, в игре телефона XNA/Silverlight Windows.Кнопка на нарисованном объекте

В настоящее время карта рисует над ней, поэтому кнопка кажется невидимой. Кто-нибудь знает, как я могу это исправить?

Кнопка switchScreen создана, но не инициализирована ранее в коде.

Вот код, где я добавляю кнопку:

private void OnDraw(object sender, GameTimerEventArgs e) 
{ 
    #region CommonStuff 
    SharedGraphicsDeviceManager.Current.GraphicsDevice.Clear(Color.CornflowerBlue); 
    #endregion CommonStuff 
    if (is3D) 
    { 
     OnDraw3D(sender, e); 
    } 
    else 
    { 
     OnDraw2D(sender, e); 
    } 
    switchScreen = new Button(); 
    switchScreen.Height = 20.0; 
    switchScreen.Width = 100.0; 
    switchScreen.Content = "Switch to Shooting Screen"; 
    switchScreen.Margin = new Thickness(phoneScreen.Height - switchScreen.Width - 
     20.0, 20.0, 20.0, phoneScreen.Width - switchScreen.Height - 20.0); 
    switchScreen.Visibility = System.Windows.Visibility.Visible; 
} 

Я только тестирование OnDraw2D так вот код, который:

private void OnDraw2D(object sender, GameTimerEventArgs e) 
{ 
    spriteBatch.Begin(); 
    // TODO: Add your drawing code here 
    map.Draw(e.ElapsedTime, e.TotalTime); 

    // npc.Draw(gameTime); 
} 

и map.Draw здесь

public override void Draw(TimeSpan elapsedTime, TimeSpan totalTime) 
{ 
    // Draw the Sky 
    gamePage.getSpriteBatch().Draw(background, Position, Color.White); 

    foreach (Person person in people) 
    { 
     person.Draw(elapsedTime, totalTime); 
    } 

    base.Draw(elapsedTime, totalTime); 
} 

background является Texture.2D и Position - Vector2.

ответ

0

Я думаю, что, так как вы создаете кнопку вручную, вы, возможно, придется использовать этот код вместо (я предполагаю, что вы с помощью Windows Forms Button управления):

switchScreen.Location = new System.Drawing.Point(xLocation, yLocation); 
switchScreen.Name = name; 
switchScreen.Size = new System.Drawing.Size(xSize, ySize); 
switchScreen.TabIndex = 0; 
switchScreen.Text = text; 
switchScreen.UseVisualStyleBackColor = true; 

Controls.Add(switchScreen); 

Как вы внедрение формы Windows? Насколько я знаю, вы не можете добавить кнопку без базовой формы для ее включения.

Смежные вопросы