| |
VB.NET - Ein- und UmsteigerRe: Schriftgrösse Benutzerdefiniert ändern führt zu Darstellungsproblemen | | | Autor: Manfred X | Datum: 27.06.11 22:02 |
| Hallo!
Du mußt die geeigneten ZoomFaktoren ermitteln (z.b. für
die Fonts klein - mittel - groß). Die Größenrelationen
können mit der Graphics.MeasureString-Methode ermittelt werden.
Wenn eine Form erstellt wird, einfach Width/Height per Faktoren
anpassen und danach eine Zoom-Funktion (z.B. in einem Modul) aufrufen
- ungefähr so eine (Das Formular, den neuen Font und die zugeh.
Faktoren als Parameter übergeben).
Private Sub ZoomControls(ByVal f As Control, fo As Drawing.Font, _
factorwidth As Double, factorheight As Double)
For Each ctl As Control In f.Controls
ZoomControls(ctl, fo, factorwidth, factorheight)
If TypeOf ctl Is ListBox Then
'Listbox reagiert sonst nicht richtig ???
Dim lb As ListBox = CType(ctl, ListBox)
lb.Height = CInt(lb.Height * factorheight)
Else
ctl.Height = CInt(ctl.Height * factorheight)
End If
ctl.Font = fo
ctl.Top = CInt(ctl.Top * factorheight)
ctl.Width = CInt(ctl.Width * factorwidth)
ctl.Left = CInt(ctl.Left * factorwidth)
Next ctl
End Sub Ausprobieren!
Ob Deine Idee mit der DPI-Änderung funktioniert, kann ich nicht beurteilen.
MfG
Manfred
Beitrag wurde zuletzt am 27.06.11 um 22:05:17 editiert. | |
Schriftgrösse Benutzerdefiniert ändern führt zu Darstellungsproblemen | | | Autor: SeaStorm | Datum: 27.06.11 16:02 |
| Hi
ich würde in meinem Programm gerne den Benutzer die Schriftgrösse wählen lassen ( die älteren Menschen sehen die standard 8.25 meisst nicht mehr so gut ;) ).
Jetzt könnte ich zwar hingehen und über alle Forms und Usercontrolls hinweg einfach den 8.25 Wert anhand eines Eingestellten Wertes ersetzen, aber das führt natürlich zu diversen Darstellungsproblemen, das z.B die Schrift nicht mehr in Eng abgemessene oder nah aneinander liegende Labels passt.
Nur wüsste ich nicht was ich dagegen tun könnte.
hat da schon jemand Erfahrung mit? Gibt es da Spezielle Einstellungen / Techniken mit denen sich solche Problmee lösen lassen?
Bin für jeden Tipp dankbar ;)
Mfg Sea
Beitrag wurde zuletzt am 27.06.11 um 16:03:02 editiert. | |
Re: Schriftgrösse Benutzerdefiniert ändern führt zu Darstellungsproblemen | | | Autor: Manfred X | Datum: 27.06.11 18:12 |
| Hallo!
Um so eine Anpassung der Formulare nachträglich zu realisieren,
könntest Du eine Funktion schreiben, die als Parameter
ein Formular, einen Font und einen Zoomfactor erhält.
Zunächst wird die Form um den Factor vergrößert (Width, Height).
Man muss danach rekursiv alle Controls-Auflistungen
der Form (und entsprechender Controls) durcharbeiten:
jeweils ggf. den Font setzen und die Top-, Left-,
Width- und evt. Hight-Eigenschaft aller enthaltenen Controls
über den Zoomfactor neu berechnen.
Den Zoomfactor erhälst Du annähernd über das Größenverhältnis
zwischen dem aktuellen und dem neuen Font.
(Evt. sind zwei Faktoren, separat für Höhe/Breite erforderlich).
MfG
Manfred
Beitrag wurde zuletzt am 27.06.11 um 18:14:19 editiert. | |
Re: Schriftgrösse Benutzerdefiniert ändern führt zu Darstellungsproblemen | | | Autor: SeaStorm | Datum: 27.06.11 21:41 |
| hm das klingt nach extrem viel gefrickel. ausserdem müsste jedes Control nachjustiert werden.
Habe heute noch ein bisschen drüber nachgedacht und hatte so ne Idee dass sowas doch irgendwie über eine DPI Zahl zu lösen sein müsste.
Das man nicht die Schriftgrösse an sich ändert, sondern die DPI Zahl der Schrift erhöht. und im gleichen verhältniss die Form rendern lässt.
Nur hab ich bisher noch nix sinnvolles darüber gefunden :\ | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|