Compact Framework

Résolu
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 19 févr. 2013 à 17:20
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 26 févr. 2013 à 20:05
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

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
20 févr. 2013 à 13:05
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...
3
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
26 févr. 2013 à 10:19
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);
        }
    }
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
19 févr. 2013 à 21:39
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...
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
20 févr. 2013 à 10:39
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
26 févr. 2013 à 20:05
Salut,

c'est nickel ça.

Bonne continuation...
0
Rejoignez-nous