2011-04-15 3 views
0

J'ai commencé à m'enseigner C# il y a une semaine. J'ai commencé par écrire Tetris pour me familiariser avec la langue. J'ai fait travailler la mécanique principale du jeu en peignant sur une image bitmap prédéfinie et en l'affichant dans une image, qui à l'époque avait la même taille de la fenêtre. Maintenant j'ai augmenté la taille de Windows et ai commencé à ajouter d'autres contrôles sur le côté de la boîte d'image. Le problème est que, maintenant que j'ai agrandi la fenêtre, en affichant l'arrière-plan du formulaire, la couleur de l'arrière-plan est toujours blanche ou que je reçois un étrange dégradé de blanc à noir dans le coin inférieur.Couleur de fond de l'image ou image collée en blanc

J'ai essayé plusieurs choses:
    - définir la forme backcolor manuellement, mais il ne reflète sur les étiquettes
    - vérifier que le TransparencyKey est vide
    - mis TransparencyKey à un utilisé couleur, rien ne change
    - ajouté un BMP que l'image de fond de la forme, reste toujours blanc
    - vérifié mon code pour voir si j'écrivais directement à l'arrière-plan du formulaire

Je n'arrive pas à résoudre ce problème; Quelqu'un a-t-il une idée?

EDIT:
J'ai trouvé la réponse à ma question. SetStyle (ControlStyles.Opaque, true) a été appelé dans mon constructeur. Je ne sais pas exactement ce que cela fait, mais je l'ai commenté et cela a réglé mon problème.

Répondre

0

J'ai trouvé la réponse à ma question. SetStyle (ControlStyles.Opaque, true) a été appelé dans mon initialisation. Je ne sais pas exactement ce que cela fait, mais c'était la cause de mon problème de couleur de fond.

1

S'il vous plaît énumérer les exigences signifie exactement ce dont vous avez besoin?

Après avoir lu votre question. Ce qui suit sont mes compréhensions.

Si votre problème est avec modification de la taille de la fenêtre, puis

  • faire usage de conteneur de Split, qui est disponible dans la boîte à outils de groupe 'conteneurs'.

  • mis son Dock propriété pour remplir pour remplir fenêtre entière si redimensionnée/maximisé.

  • Ensuite, utilisez le volet de droite pour contenir votre zone d'image et le volet de gauche pour les autres contrôles.

  • Si vous le souhaitez, vous pouvez également définir la propriété Dock de la zone d'image pour qu'elle remplisse son conteneur parent.

Si votre problème est avec la couleur de fond de la fenêtre, puis

  • En fait, question de couleur de fond est, si la forme est un conteneur Mdi.

  • Vérifiez si IsMdiContainer propriété est définie sur false. Si vrai, c'est un MdiContainer.

  • Le bloc de code suivant définit la couleur de fond de Mdi Forms sur la couleur de fond des formulaires.

    foreach (Control c in this.Controls) 
    { 
        if (c is MdiClient) 
        { 
         c.BackColor = this.BackColor; 
        } 
    } 
    
Questions connexes