Compact Framework [Résolu]

Signaler
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
Bonjour

Je travaille sur l'interface graphique d'une application, un parmi les screens contient un Tabcontrol avec plusieurs pages, j'aimerai mettre une background image au lieu d'une des couleurs unique qu'offre les propriétés.y a-t-il une manière d'ajouter cette propriétés ???
Merci beaucoup

5 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
Re,

ok,

alors 2 solutions :
Récupérer le Graphics de la page via CreateCraphics puis dessiner dessus lors des appels à DrawItem si mode "OwnerDraw" ou lors des appels à OnPaint du parent. (formulaire ou TabControl ça dépends du paramétrage "Child control" ou non)

Tu peux aussi créer une classe dérivée de TabPages (TabPagesImage) avec overrides du OnPaint et ajouter tes propres TabPagesImage à la place des TabPages de base.
TabControl1.AddPage( monTabPagesImage );
ou un truc dans le style...

bye...
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

re j'ai trouvé une solution mais j'ai oublié de poster la réponse, Merci yann_lo_san tu m'as donné une indication ;)
cette petite classe fait l'affaire ensuite no declare la page onglet en tant que TabPageWithBackground.

 
public class TabPageWithBackground : TabPage
    {
        private Rectangle _backgroundRect;
        private Bitmap _background;

         public TabPageWithBackground()
        {
            _background = Resource1.ImageBackground;
            _backgroundRect = new Rectangle(0, 0, _background.Width, _background.Height);
            this.Size = new System.Drawing.Size(100, 20);
        }


        protected override void OnPaintBackground(PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawImage(_background, this.ClientRectangle, _backgroundRect, GraphicsUnit.Pixel);
        }
    }
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
Salut,

ben tu peux simplement afficher ton image sur la page voulue ?

// gloable
Image _img = null;

// form load
_img = new Bitmap("imgNimporteQuelleTaille.jpg");

// Affiche image sur page 3 du tabControl
tabControl1.TabPages[2].BackgroundImage = _img;



c'est tout.

bye...
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

Bonjour yann_lo_san, merci pour ta réponse
le problème c'est que je travaille sur le compact framework, qui est dédié pour les device windows mobile, il est restreint en terme de fonction, il n'offre pas donc la propriété BackgroundImage, on peut juste modifier le backgroundColor
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
Salut,

c'est nickel ça.

Bonne continuation...