Faire une image d'arrière-plan à l'échelle avec la taille du bouton
Je suis d'essayer d'ajouter des images d'arrière-plan de quelques boutons de ma Victoire des Formulaires de demande. Les trois images sont de tailles différentes (c'est à dire des dimensions en pixels ne correspondent pas, l'un est 128x128 pixels et un autre est 256x256). J'ai besoin de l'boutons est identique à la taille (sinon, le GUI est horriblement asymétrique). Sans modifier les fichiers d'image, comment puis-je obtenir les images pour s'adapter à la taille du bouton?
J'ai essayé de créer ma propre classe, et l'ajout d'un gestionnaire d'événement pour le bouton de redimensionnement de l'événement, mais cela ne semble pas fonctionner. Mon code:
class CustomButton : Button {
internal void CustomButton_Resize( object sender, EventArgs e ) {
if ( this.BackgroundImage == null ) {
return;
}
var pic = new Bitmap( this.BackgroundImage, this.Width, this.Height );
this.BackgroundImage = pic;
}
}
et dans la forme:
this.buttonOne.Resize += new System.EventHandler(this.buttonOne.CustomButton_Resize);
Oublié de mentionner, le code ci-dessus ne permet pas de redimensionner les images à tous. Les boutons doivent encore avoir des tailles différentes pour afficher les images complètement.
- J'avais essayé d'écrire la même chose de manière concise, mais ne pouvait pas réussir. Au moins, veuillez améliorer le look de code 🙂
Vous devez vous connecter pour publier un commentaire.
Le facile par programme
Dire que j'ai un bouton
btn1
, d'après le code fonctionne parfaitement dans visual-studio-2010.La meilleure façon
Vous pouvez ajouter un gestionnaire d'événements dans le constructeur de votre custombutton (juste pour s'assurer que vous êtes en ajoutant sa propre correctement)
Maintenant, quand vous allez redimensionner le bouton n'importe où votre image sera d'obtenir l'ajustement(à l'échelle) à sa nouvelle taille.
Façon la plus simple pour ajouter une image d'arrière-plan pour un .NET le Bouton de l'objet et de l'échelle pour l'adapter à
J'ai utilisé cette méthode pour éviter toute codage supplémentaire de nouvelles classes et des gestionnaires d'événements. Cela m'a permis également d'éviter la conversion de tous les objets de Bouton dans les objets de l'Image.
Ajouter des images à vos Ressources.fichier resx.
Cliquez sur le bouton de votre choix.
Accédez à la
BackgroundImage
propriété et choisissez l'image que vous avez importés dans les ressources du projet.fichier resx.Accédez à la
BackgroundImageLayout
propriété et choisissezStretch
.Assurez-vous que vous n'avez rien saisi pour le
Image
etText
propriétés ou sinon ils vont interférer avec votre nouvelle image d'arrière-plan.Vous pourriez commencer avec quelque chose comme ça...
Vous pouvez simplement utiliser la peinture et dessiner l'image de vous-même. Vous pouvez également essayer d'utiliser un PictureBox ou un autre contrôle qui a plus d'options d'échelle