Question

Dans une application WinForms , je dois être en mesure de modifier de manière interactive "hot". des zones situées au-dessus d'une image, qui seront ensuite utilisées comme une sorte de carte d'image.

J'ai essayé d'assembler un contrôle UserControl avec des rectangles flottants (Microsoft.VisualBasic.PowerPacks ftw) au-dessus d'un PictureBox, mais le résultat n'était pas très joli, en particulier avec des problèmes de scintillement et d'actualisation lorsque les contrôles sont déplacés.

Quelqu'un a-t-il eu connaissance d'un contrôle existant qui aiderait à définir des zones sur un canevas? Je pense que les applications graphiques, par exemple, doivent faire face à beaucoup de sélections flottantes, mais je ne peux rien trouver d’utile. Toutes les idées appréciées.

Était-ce utile?

La solution

J'ai un tel contrôle ... sans le support du concepteur

Il y a un petit bug (très intermittent) sur lequel je n'ai pas encore travaillé, mais il se situe quelque part au fond de la BCL. Si vous souhaitez une copie, envoyez-moi un courrier (via www.sadeveloper.net), et je vous en enverrai une copie à deux conditions.

  1. immunité standard contre tout effet, aucune responsabilité pour tout dommage, accidentel ou autre ....
  2. si vous trouvez le bogue et le corrigez, vous me faites savoir comment

MaLio

Autres conseils

Restez fidèle à votre solution actuelle pour le moment. Votre scintillement peut être dû au fait que vous n'activez pas la double mise en mémoire tampon!

Avec la double mise en tampon activée, la plupart (sinon la totalité) de vos scintillements devraient disparaître.

Dans votre composant InitializeComponent du contrôle personnalisé et du formulaire:

this.SetStyle(ControlStyles.AllPaintingInWmPaint |
              ControlStyles.UserPaint |
              ControlStyles.DoubleBuffer,true);

Beaucoup plus d'informations disponibles dans cet article.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top