2010-11-27 7 views
1

J'ai un problème concernant une charge d'image partielle. Voici la situation actuelle: J'ai une forme énorme avec un Backgroundimage. Ce formulaire n'a pas de frontière, donc je fais mes propres "Windows-Style-Boutons" avec planant et brillant. Pour rendre cela éclatant, les boutons sont invincibles et l'image d'arrière-plan du formulaire reçoit une nouvelle image de fond (image de fond + bouton lumineux, combiné dans une fonction) Mais sur les PC lents, le chargement de la nouvelle énorme backgroundimage prend beaucoup de temps et n'est plus temps réel ...C# - Charger l'image seulement partielle

Alors, comment puis-je le faire, pour charger la nouvelle image de fond seulement partielle, sur la petite section avec le bouton lumineux? Je ne peux pas faire un petit picturebox, parce que la forme a beaucoup infobulles et minuteries et événements connexes, donc je dois faire tout nouveau, qui ne serait pas très « productif »

Cordialement WonderWhy

+1

WinForms ou WPF? – driis

+1

Ce n'est vraiment * pas * la meilleure façon de le faire dans WinForms ... Ça va être glacial lent et incroyablement douloureux. –

+0

J'ai WinForms. Alors, n'y a-t-il pas de meilleur moyen que de changer l'image de fond avec le "None" -Imagelayout? – Wonderwhy

Répondre

1

En supposant WinForms: Une meilleure approche serait probablement de faire votre propre type de bouton et de surcharger OnPaint() pour obtenir l'apparence que vous voulez (ici vous pouvez dessiner des parties de l'image d'arrière-plan, si vous voulez). Si vous voulez coller avec l'image d'arrière-plan, vous pouvez remplacer OnPaint du formulaire et y dessiner vos boutons personnalisés.

S'il s'agit de WPF, il existe un support intégré pour ce type d'effets.

+0

Je ne savais pas que je pouvais dessiner des parties de l'image de fond. Je pensais que l'image ne pouvait pas être plus grande que la bordure du bouton. Comment puis-je faire cela dans WinForms? – Wonderwhy

Questions connexes