Laden...

PictureBox - Größe des Bildes

Erstellt von Merti_berg vor 15 Jahren Letzter Beitrag vor 15 Jahren 4.134 Views
M
Merti_berg Themenstarter:in
91 Beiträge seit 2008
vor 15 Jahren
PictureBox - Größe des Bildes

Hallo,

Ich bin mal wieder dabei ein Programm zu programmieren. Kurz erklärt: Es wird ein Formular in einer PictureBox angezeigt, darauf sind mehrere TextFelder, RadioButtons, usw... Alles mit Hilfe etc so das es für den Benutzer einfach ist so ein Forumlar auszufüllen. Danach kann das fertige Forumlar gedruckt werden.

Mein Problem ist jetzt nur die Größe des Bildes was in der PicBox angezeigt wird, dh. Viele Leute haben unterschiedliche Bildschirmauflösungen und somit ist im schlimmsten Falle das Bild in der PicBox größer als die Auflösung des Bildschirms. Ich könnte das Bild zwar auch auf eine kleiner Auflösung konvertieren dann hab ich aber das Problem das es vllt zu klein ist. Es muss wenn es ausgedruckt wird genau auf eine A4 Seite passen. Leider bin ich noch nicht so weit bei meinem Wissen bzgl. des Druckens somit kann ich es nicht ausprobieren.

Gibt es irgendwas dynamisches wo sich dann die Form/PicBox an die jeweile Auflösung anpasst des Benutzers ABER die Textboxen, RadioButtons etc müssen alle mit auf die Größe angepasst werden das ist mein Problem, --> Wenn das Bild Größer ist müssen auch die Textboxen größer werden um genau noch dort zu sein wo sie vorher waren. Wenn das Bild kleiner wird müssen die Textboxen auf kleiner werden so das alles noch ordentlich formatiert ist und passt. Ich weiß einfach nicht wie ich das realisieren soll, Ich probier schon wieder eine ganze Weile aber finde nichts was mir weiterhilft...

Habe mir überlegt das Original Bild auf 595 x 842 Pixel zu verkleinern (ist der Wert für A4 in Pixel den ich gefunden hab) und dieses Bild dann universell in meiner PicBox zu verwenden... müsste ja für jede Bildschirmauflösung passen und auch dann beim Drucken auf eine A4 Seite passen ?(

946 Beiträge seit 2008
vor 15 Jahren

Möchtest du, dass wenn deine Picturebox grösser wird, dass die anderen Steuerelemente kleiner werden? Bei Bildschirmen mit kleinerer Auflösung lässt sich das Formular dann gar nicht mehr bedienden.

WinForms ist m.E. aber sowieso pixelorientiert, sodass du deinem Fenster nur eine feste Grösse geben musst.

Was spricht aber dagegen, die PictureBox auf den Zoom-Mode zu stellen um so das Bild bei Bedarf des Users zu vergrössern.

Wenn das Bild wirklich gezoomt werde soll, wirst du IMHO die Steuerelemente mit dem ButtonRenderer, RadioButtonRenderer etc selber zeichen müssen. Dann hast du ein Bild, welches sich ohne Probleme zoomen lässt

Ob das jedoch Benutzerfreundlicher ist, mag ich bezweifeln.

mfg
SeeQuark

M
Merti_berg Themenstarter:in
91 Beiträge seit 2008
vor 15 Jahren

Möchtest du, dass wenn deine Picturebox grösser wird, dass die anderen Steuerelemente kleiner werden?

Nein, mir geht es darum das jeder Benutzer mit dem Programm arbeiten kann. Wenn ich die picture box jetzt standartmäßig auf eine größe von 1280x1024 Pixel setze kann zb ein User mit einer auflösung von 1024x786 Pixel das Programm nur schwerer bedienen da er nicht alles sieht. Deswegen war eben meine Frage wie ich das lösen kann bzw auf welche Größe ich die Picturebox/Das Formulat als Bild machen muss damit es immer noch A4 Größe hat aber jeder User auch damit umgehen kann.

Mit der Zoom Methode, also das man es immer größer und kleiner machen kann ist zwar auch sehr nett aber dann doch wieder zu umfangreich für so ein Projekt. Ich hoffe es war ein wenig verständlich, wenn nicht dann einfach nochmal nachfragen.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Merti_berg,

Mit der Zoom Methode, also das man es immer größer und kleiner machen kann ist zwar auch sehr nett aber dann doch wieder zu umfangreich für so ein Projekt.

wieso? Mit Anchor/Dock/TableLayoutPanel geht sowas doch leicht.

herbivore

M
Merti_berg Themenstarter:in
91 Beiträge seit 2008
vor 15 Jahren

Mein Post bezog sich eig. dardauf

Wenn das Bild wirklich gezoomt werde soll, wirst du IMHO die Steuerelemente mit dem ButtonRenderer, RadioButtonRenderer etc selber zeichen müssen. Dann hast du ein Bild, welches sich ohne Probleme zoomen lässt

Also das es zu umständlich ist die ganzen Controls, etc selber zu zeichnen. Wenn ich es Mit Dock mache ist eben das Problem mit den Controls, diese verändern sich nicht wenn die PictureBox kleiner wird, deswegen auch Die Idee/meine Frage welche feste Größe ich für ein A4 Blatt nehmen muss. Das Problem ist auch (Jedenfalls weiß ich keine Lösung) Ich hab die PictureBox in ein Panel gemacht so das ich scrollen kann da das Bild standartmäßig zu "lang" ist. Stell ich die PictureBox nun auf Dock - Fill verschwinden meine Scrolleisten und ich seh nur das halbe Bild.

Meine derzeitige PictureBox mit dem Formular drin ist 960x1465 Pixel. Hab es in einem Panel drin und SizeMode auf AutoSize. Kein Dock/Anchor etc es ist eben bloß das Problem bzgl. des Ausdruckens/der Größe...

946 Beiträge seit 2008
vor 15 Jahren

es ist eben bloß das Problem bzgl. des Ausdruckens/der Größe...

Dann musst du die Steuerelemente doch entweder in der gleichen Grösse lassen, wie sie sind, oder sowieso zeichnen.
Dann wäre das mit dem manuellen Rendern kein Problem.


Mit der Zoom Methode, also das man es immer größer und kleiner machen kann ist zwar auch sehr nett aber dann doch wieder zu umfangreich für so ein Projekt.

Wie flexibel bist du denn?
Eventuell könntest du auf WPF umsteigen.

Mit Hilfe der Viewbox ist das gar kein Problem (siehe Anhang).


Wenn du nur willst, dass die Steuerelemente am Rand "kleben" bleiben, dann ist das nicht schwer.
Dann kannst du das mit einem TableLayoutPanel, wie von herbivore gesagt machen.

mfg
SeeQuark

M
Merti_berg Themenstarter:in
91 Beiträge seit 2008
vor 15 Jahren

Hallo,

Ich drucke nun das Bild aus der Picbox aus, Größe habe ich jetzt alles angepasst nur ist das Problem nun das die Steuerelemnte (textbox, checkbox,...) nicht mit ausgedruckt werden. Wie kann ich denn das ändern also das dass Bild UND die Steuerelemte ausgedruckt werden. Ich habe dazu bloß was in VB gefunden was aber sehr schwer zu verstehen ist, jedenfalls für mich...

946 Beiträge seit 2008
vor 15 Jahren

Das einfachste ist imho, wenn du das wie in Formular/Control drucken oder als Bitmap speichern beschrieben machst.

Du kannst das auch selber machen, wie zum Beispiel so (mit Border des Windows):

Bitmap bitmap = new Bitmap(this.Width, this.Height);
this.DrawToBitmap(bitmap, new Rectangle(0, 0, this.Width, this.Height));
bitmap.Save(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "form.png"));

mfg
SeeQuark