[GDI][C# .Net 2] .Net FW 2 est buggué ?! ... ou c'est moi ?
Hello @ tous :P,
voilà maintenant 3 jours que je galère sur un problème avec GDI+ ...
Je veux imprimer des champs sur une page, et l'utilisateur peut indiquer la position en mm de ces champs ...
J'ai donc un printDocument, associé à un boup de code de test :
Code:
1 2 3 4 5 6 7 8
| private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Red, 0, 0, e.MarginBounds.Width, e.MarginBounds.Height);
//
e.Graphics.PageUnit = GraphicsUnit.Pixel;
//
e.Graphics.DrawRectangle(Pens.Green, 0, 0, e.MarginBounds.Width, e.MarginBounds.Height);
} |
( J'ai mis "OriginAtMargins" à true ... donc je trace en partant de 0 )
Avec ce code, je me retrouve avec un gros carré Rouge qui fait bien toute la surface hors-marges ... et un tout petit vert ?!!
Et je suis en train de me demander pourquoi ?
Est ce que le "PageUnit" des "MarginBounds" et autres Rect n'est pas le pixel ?
( dans ce cas, c'est quoi ? ... le WorldUnit ??? )
Comment convertir de l'unité utilisée au pixel ? ...
Je pensais que le fait de changer d'unité dans le PageUnit allait automatiquement faire que je lirais des infos dans cette unité ... ?!
Voilà, c'est simple à utiliser, mais là je voudrais pouvoir placer précisément des objets, et que ça marche avec toutes les imprimantes, l'aperçu ... :aie:
Merci,
@+
Seb.
GDI = Grosse Depression Inutile ?!
Bon, je continu mon monologue ... :lol:
Y'a un truc vraiment pas normal ... :evilred:
Citation:
Graphics..::.VisibleClipBounds Property :
The unit for resulting rectangle is designated by the PageUnit property. The default unit is pixels.
Hors, quand je fais :
Code:
1 2
| myGraphic.PageUnit = GraphicsUnit.Millimeter;
myGraphic.PageUnit = GraphicsUnit.Inch; |
Rien ne se passe : VisibleClipBounds.width et autre ne change pas de valeur ...
C'est moi qui déconne sec, ou ces objets sont complètement buggués ??? :oops:
HELP ! ... :arf: