erstmal sry für die nekromantie, dachte mir, da es eben dazu passt wäre es besser dort zu posten anstatt einen neuen Thread zu eröffnen (zumindest bin ich das aus anderne Foren so gewohnt), nun dann ebend nochmal in nem neuen thread^^
ich möchte, beim vergrößern eines Fensters die Steuerelemente
ebenso vergrößern und verkleinern, eben so wie man das Fenster vergößert
oder verkleinert. Ich arbeite dabei mit WPF.
dazu dachte ich mir, ich nehme den neuen wert des Fensters, dividiere
diesen durch den originalen Wert und mithilfe des Faktors vergrößere /
verkleinere ich die Steuerelemente, eventuell auch abschnittsweise
verschieden stark. (länge und breite wird einzeln berechnet)
ich habe nun ein problem, dass mir das Fenster, obwohl ich es durch das
_Loaded Event des Fensters auf einen anfangswert setzen lasse, mir auf
1940 px in die breite springt (823 px is der standart wert) sobald ich
es im debug modus starte. ich vermute, dass dieses problem mit dem
_SizeChanged Event des Fensters zusammenhängt, in dem ich die berechnung
durchführen lasse. Diese Methode wird nach dem Loaded event warum auch
immer (nicht von mir) 5 mal aufgerufen, doch überschreibe ich dabei
weder die Me.Height noch die Me.Width mit dem von mir geschriebenen
Quellcode.
hier mal ein wenig Code:
hmm jetzt beim schreiben fällt mir auf, dass ich wohl nicht nur einen
fehler, sondern zwei in meiner denkweise hab. was das Datagrid angeht,
soll dieses von der linken seite des Fensters bis zur rechten seite
reichen, was es auch, egal wie man am fenster herumzieht macht... doch
eigentlich müsste es doch sich von einem Rand des Fensters weiter
entfernen, da das Fenster(dessen breite) sich um einen höheren Betrag
vermehrt als es das DataGrid es nach der berechnung tun sollte (fenster
eig. 823 pixel standart, DataGrid 800, um den rand auszugleichen)
achja, bevor ichs vergess, im _loaded Event steht noch ein "Me.Width = 823"
und wer sich fragt wo die Variablendeklarationen sind, die wurden
(bisher noch) global deklariert (wenn es denn so genannt wird) und
allesamt als double. des weiteren entsteht das Fenster auf der
gewünschtwen Größe, sobald ich die Berechnung herausnehme/auskommentiere
und dann Starte.
so um es nochmal zusammen zu fassen:
Warum öffnet sich meine Fenster auf 1940px breite?
warum verhält sich das DG anderst als erwartet? (perfekte skalierung ungeachtet meines Faktors, was eigentlich erfreulich ist)
warum lässt es sich nicht in der höhe skalieren?
und zu guter letzt, gibt es bessere, einfachere methoden um das zu bewerkstelligen?
MfG
ich möchte, beim vergrößern eines Fensters die Steuerelemente
ebenso vergrößern und verkleinern, eben so wie man das Fenster vergößert
oder verkleinert. Ich arbeite dabei mit WPF.
dazu dachte ich mir, ich nehme den neuen wert des Fensters, dividiere
diesen durch den originalen Wert und mithilfe des Faktors vergrößere /
verkleinere ich die Steuerelemente, eventuell auch abschnittsweise
verschieden stark. (länge und breite wird einzeln berechnet)
ich habe nun ein problem, dass mir das Fenster, obwohl ich es durch das
_Loaded Event des Fensters auf einen anfangswert setzen lasse, mir auf
1940 px in die breite springt (823 px is der standart wert) sobald ich
es im debug modus starte. ich vermute, dass dieses problem mit dem
_SizeChanged Event des Fensters zusammenhängt, in dem ich die berechnung
durchführen lasse. Diese Methode wird nach dem Loaded event warum auch
immer (nicht von mir) 5 mal aufgerufen, doch überschreibe ich dabei
weder die Me.Height noch die Me.Width mit dem von mir geschriebenen
Quellcode.
hier mal ein wenig Code:
VB.NET-Quellcode
- Private Sub MainWindow_SizeChanged(ByVal sender As Object, ByVal e As System.Windows.SizeChangedEventArgs) Handles Me.SizeChanged
- hoehe_neu = Me.Height
- breite_neu = Me.Width
- hoehe_neu = hoehe_neu / hoehe
- breite_neu = breite_neu / breite
- DataGrid1.Height = DataGrid1.Height * hoehe_neu
- DataGrid1.Width = DataGrid1.Width * breite_neu
- End Sub
hmm jetzt beim schreiben fällt mir auf, dass ich wohl nicht nur einen
fehler, sondern zwei in meiner denkweise hab. was das Datagrid angeht,
soll dieses von der linken seite des Fensters bis zur rechten seite
reichen, was es auch, egal wie man am fenster herumzieht macht... doch
eigentlich müsste es doch sich von einem Rand des Fensters weiter
entfernen, da das Fenster(dessen breite) sich um einen höheren Betrag
vermehrt als es das DataGrid es nach der berechnung tun sollte (fenster
eig. 823 pixel standart, DataGrid 800, um den rand auszugleichen)
achja, bevor ichs vergess, im _loaded Event steht noch ein "Me.Width = 823"
und wer sich fragt wo die Variablendeklarationen sind, die wurden
(bisher noch) global deklariert (wenn es denn so genannt wird) und
allesamt als double. des weiteren entsteht das Fenster auf der
gewünschtwen Größe, sobald ich die Berechnung herausnehme/auskommentiere
und dann Starte.
so um es nochmal zusammen zu fassen:
Warum öffnet sich meine Fenster auf 1940px breite?
warum verhält sich das DG anderst als erwartet? (perfekte skalierung ungeachtet meines Faktors, was eigentlich erfreulich ist)
warum lässt es sich nicht in der höhe skalieren?
und zu guter letzt, gibt es bessere, einfachere methoden um das zu bewerkstelligen?
MfG